"場面から位置情報を取り込むキャプチャーデバイスに結合されている計算環境を備えているシステムにおいて、ジェスチャー認識方法であって、a前記場面の中にいるユーザーから位置情報を受け取るステップであって、前記ユーザーが第1身体部分および第2身体部分を有する、ステップと、b前記第1身体部分からジェスチャーを認識するステップと、c前記第2身体部分によって行われたジェスチャーを無視するステップと、d前記ステップbにおいて認識した前記第1身体部分からの前記ジェスチャーと関連付けられた動作を実行するステップと、を備えている、方法。請求項1記載の方法において、前記第2身体部分によって行われたジェスチャーを無視する前記ステップcが、ジェスチャーが受け入れられる身体部分の定義を有するステップを含み、前記第2身体部分が、前記定義には含まれていない、方法。請求項1記載の方法において、前記第2身体部分によって行われたジェスチャーを無視する前記ステップcが、前記第2身体部分から位置情報を受け取らないステップを含む、方法。請求項1記載の方法であって、更に、前記視野を複数のゾーンに区分するステップであって、前記第2身体部分によって行われたジェスチャーを無視するとき、前記第2身体部分が前記複数のゾーンの内第1ゾーンの中にある、ステップを備えており、更に、前記第2身体部分からの同じジェスチャーが前記複数のゾーンの内第2ゾーンにおいて行われたとき、このジェスチャーを認識し、これに応じて動作するステップを備えている、方法。場面から位置情報を取り込むキャプチャーデバイスに結合されている計算環境を備えているシステムにおいて、ユーザーの身体部分を認識し追跡するステップであって、a前記場面から位置情報を受け取ったステートレス身体部分提案システムから、身体部分の提案を入手するステップと、bステートフル身体部分提案システムから身体部分の提案を入手するステップと、c骨格解明システムによって、前記候補身体部分の折り合いをつけて、全体的または部分的骨格を求めるステップと、を備えている、方法。請求項5記載の方法において、ステートレス機械学習身体部分提案システムから身体部分の提案を入手する前記ステップaが、前記ユーザーの頭部および肩についての身体部分の提案を、重心確率によって入手するステップを含む、方法。請求項5記載の方法において、ステートフル身体部分提案システムから身体部分の提案を入手する前記ステップbが、前記ユーザーの頭部および肩についての身体部分の提案を、マグネティズムおよび過去のフレームからの存続の内少なくとも1つによって入手するステップを含む、方法。請求項5記載の方法において、前記候補身体部分の折り合いをつけて、全体的または部分的骨格を求める前記ステップが、最大のサポートを有する仮説の特定を可能にする1つ以上の採点検査を実行するステップを含む、方法。請求項8記載の方法において、第1グループの関節を特定する前記ステップbが、更に、d実際のプレーヤーに対応する候補頭部および肩の提案を特定するステップと、e前記ステップdにおける各候補の各肩に属する潜在的な可能性がある手の提案を評価するステップと、f前記ステップeにおける手の提案を、前記ステップdにおける肩の提案と結び付ける肘の提案を評価するステップと、を備えている、方法。少なくとも1つの麻痺した身体部分の使用が少なくとも制限されるユーザーの身体部分を認識し追跡する方法を実行するように、プロセッサーをプログラミングすることができるコンピューター読み取り可能記憶媒体であって、前記方法が、a前記少なくとも1つの麻痺した身体部分の識別の指示を、前記ユーザーから受け取るステップと、b前記ユーザーの第1グループの関節を特定するステップであって、前記関節が前記少なくとも1つの麻痺した身体部分の中に含まれない、ステップと、c前記第1グループの関節において、関節の位置を特定するステップと、d前記ステップcにおいて特定した前記関節の位置に基づいて、動作を実行するステップと、を備えている、コンピューター読み取り可能記憶媒体。0036本技術の実施形態について、これより図1から図17Bを参照しながら説明する。これらの図は、総じて、NUIシステムによってユーザーの骨格関節を認識および追跡するシステムならびに方法に関し、実施形態では、例えば、ユーザーの上半身のような、一部の骨格関節のみを認識および追跡するシステムならびに方法に関する。本システムは、画像キャプチャーデバイスから視野FOVのフレームデーターを受け取る肢識別エンジンを含むことができる。一般に、この肢識別エンジンの実施形態は、多数の候補身体部分位置を特定する身体部分提案システムと、これらの候補身体部分の折り合いをつけて全体的または部分的骨格を求める骨格解明システムとを含む。0037次いで、身体部分提案システムは、原型および重心生成方法を用いて、何らかの信頼性レベルを関連付けて、FOV内部において身体部分を特定することができる。また、本システムはマグネティズムを利用することもできる。マグネティズムは、直前のフレームにおいて位置が分かっていた身体部分の新たな位置を、新たなフレームについての画像データー内にある近隣の造作に身体部分をスナップすることによって、推定する。原型および重心生成方法については、MultipleCentroidCondensationofProbabilityDistributionClouds確率分布クラウドの多数の重心凝縮と題する米国特許出願第12/770,394号において、更に詳細に説明されている。この特許出願をここで引用したことにより、その内容全体が本願にも含まれるものとする。しかしながら、原型および重心生成は、候補身体部分を特定するために用いることができる1つの方法に過ぎないことは言うまでもない。画像を分析し種々の身体部分について種々の候補関節位置を出力することができる確率を用いてまたは用いないで他のアルゴリズムも、原型および/または重心の代わりに、またはこれに加えて用いることができる。0038原型および重心生成技法を用いる場合、これらの技法は候補身体部分の位置を特定する。特定された位置は、正しいかもしれないし、正しくないかもしれない。本システムの1つの目標は、候補身体部分の位置を一緒に融合して、人が場面の中のどこにいるか、そしてどのような姿勢を彼らがとっているかについてコヒーレントなイメージを得ることである。実施形態では、肢識別エンジンは、更に、この目的のために骨格解明システムも含むことができる。0039実施形態では、骨格解明システムは、頭部、肩、肘、手首、および手のような上半身の関節を、取り込まれたデーターのフレーム毎に識別することができる。このような実施形態では、肢識別エンジンは、原型および種々の採点サブルーチンを用いて、ユーザーの肩および頭部に対応する重心集合体を特定することができる。これらの重心集合体を、本明細書では、頭部三角形と呼ぶ。マグネティズム、原型からの重心、またはその他の成分を含むがこれらには限定されない種々のソースからの手の提案を用いて、肢識別エンジンの骨格解明システムは、更に、FOV内にいるユーザーの手について、潜在的に可能な手の位置、または手の提案を特定することができる。骨格解明システムは、次に、手の提案毎に多数の肘の位置を評価することができる。これらの動作から、肢識別エンジンの骨格解明システムは、フレーム毎に、各プレーヤーについて頭部、肩、および腕の位置を特定することができる。0040ユーザーの身体関節の一部のみに焦点を絞ることによって、本システムは、全ての身体関節を測定するシステムにおけるよりも、効率的に画像データーを処理することができる。更に処理効率を高めるために、画像データーを取り込むキャプチャーデバイスが、視野を更に小さなゾーンに区分することもできる。このような実施形態では、キャプチャーデバイスは、1つのゾーンだけに焦点を絞り、連続するフレームにおいてこれらの小さなゾーンを一巡することができる。選択した身体関節またはゾーンに焦点を絞ることには、処理効率を超えた他の利点もあると思われる。特定の1組の関節またはゾーンに焦点を絞ることは、矛盾するジェスチャーを受け取って処理する可能性を回避するためにも行うことができる。0041一旦選択した関節について関節位置を出力したなら、この情報は種々の目的に用いることができる。これは、ジェスチャー認識取り込んだ身体部分によって行われるジェスチャーに用いることができるだけでなく、NUIアプリケーションによって提示される仮想物体との対話処理にも用いることができる。更に他の実施形態では、例えば、ユーザーが彼らの脚部を用いない場合、ユーザーは脚部制御モードでNUIアプリケーションと対話処理することができる。この場合、ユーザーの手の動きが、画面上のキャラクタの脚部の動きを制御するための画像データーに変換される。これらの実施形態については、以下で更に詳しく説明する。0042最初に図1Aから図2を参照すると、本技術を実現するハードウェアは、ターゲット認識、分析、および追跡システム10を含む。このシステム10は、ユーザー18のような人間のターゲットを認識し、分析し、そして追跡するために用いることができる。ターゲット認識、分析、および追跡システム10の実施形態は、ゲーミングアプリケーションまたは他のアプリケーションを実行する計算環境12を含む。計算環境12は、ゲーミングアプリケーションおよびゲーミング以外のアプリケーションというようなアプリケーションを実行するために用いることができるように、計算環境12は、ハードウェアコンポーネントおよび/またはソフトウェアコンポーネントを含むことができる。一実施形態では、計算環境12は、標準的なプロセッサー、特殊プロセッサー、マイクロプロセッサー等というようなプロセッサーを含むことができる。このプロセッサーは、本明細書において記載するプロセスを実行するためにプロセッサー読み取り可能記憶デバイス上に格納されている命令を実行することができる。0043システム10は、更に、キャプチャーデバイス20も含む。キャプチャーデバイス20は、このキャプチャーデバイスが検知する1つ以上のユーザーおよび/または物体に関する画像データーおよびオーディオデーターを取り込む。実施形態では、キャプチャーデバイス20は、部分的または全体的な身体の動き、1人以上のユーザーのジェスチャーおよび音声に関する情報を取り込むために用いることができる。この情報は、計算環境が受け取り、ゲーミングアプリケーションまたは他のアプリケーションの様相をレンダリングする、これと対話処理する、および/またはこれを制御するために用いられる。計算環境12およびキャプチャーデバイス20の例については、以下で更に詳しく説明する。0044ターゲット認識、分析、および追跡システム10の実施形態は、ディスプレイ14を有するオーディオ/ビジュアルA/Vデバイス16に接続することができる。デバイス16は、例えば、テレビジョン、モニター、高品位テレビジョンHDTV等とすればよく、ゲームまたはアプリケーションの映像および/または音声をユーザーに供給することができる。例えば、計算環境12は、グラフィクスカードのようなビデオアダプター、および/またはサウンドカードのようなオーディオアダプターを含むことができる。これらのアダプターは、ゲームまたは他のアプリケーションに付随するオーディオ/ビデオ信号を供給することができる。オーディオ/ビジュアルデバイス16は、オーディオ/ビジュアル信号を計算環境12から受け取り、次いでこのオーディオ/ビジュアル信号と関連のあるゲームまたはアプリケーションの映像をユーザー18に出力することができる。一実施形態によれば、オーディオ/ビジュアルデバイス16は、例えば、SVideoケーブル、同軸ケーブル、HDMIケーブル、DVIケーブル、VGAケーブル、コンポーネントビデオケーブル等によって、計算環境12に接続することができる。0045実施形態では、計算環境12、A/Vデバイス16、およびキャプチャーデバイス20は、協同してアバターまたは画面上のキャラクタ19をディスプレイ14上にレンダリングすることができる。実施形態では、アバター19は、実世界空間におけるユーザー18の動きを真似するので、ユーザー18は、ディスプレイ14上におけるアバター19の動きおよび行為を制御する動きおよびジェスチャーを行うことができる。以下で説明するが、本技術の1つの態様では、ユーザーが1組の肢部、例えば、彼らの腕を動かして、画面上のアバター19の異なる肢部、例えば、脚部の動きを制御することを可能にする。0046図1Aでは、キャプチャーデバイス20はNUIシステムにおいて用いられ、例えば、ユーザー18は、ディスプレイ14上に提示される種々のメニュー選択肢を有するユーザーインターフェース21全体にわたってスクロールし、ユーザーインターフェース21を制御する。図1Aにおいて、計算環境12およびキャプチャーデバイス20は、ユーザーの上半身の動きおよびジェスチャーを認識し分析するために用いることができ、このような動きおよびジェスチャーは、ユーザーインターフェースのための制御として解釈することができる。このような実施形態では、以下で説明するように、ユーザーの上半身のみを追跡してその動きを求めることができる。0047図1Bは、ユーザー18が椅子23に座りながらテニスゲーミングアプリケーションをプレーしている、別の実施形態を示す。図1Bは、同様の実施形態を示すが、この実施形態では、ユーザーは彼の四肢の全てが使えない身体障害者であってもよい。図1Bでは、ユーザーは車椅子に座っており、彼の脚部を使わない。図1Bおよび図1Cでは、計算環境12およびキャプチャーデバイス20は、ユーザーの上半身の動きおよびジェスチャーを認識しそして分析するために用いることができ、このような動きおよびジェスチャーは、ゲーム空間におけるアバター19の行為に影響を及ぼすゲーム制御または行為として解釈することができる。0048図1A~図1Cの実施形態は、計算環境12において実行することができる多くの異なるアプリケーションの内の2つであり、計算環境12において実行するアプリケーションは、種々のその他のゲーミングアプリケーションおよびゲーミング以外のアプリケーションとすることができる。0049図1A~図1Cは、椅子および植物のような静止した背景物体23を含む。これらは、場面即ち、キャプチャーデバイス20によって取り込まれるエリア内部にある物体であるが、フレーム毎に変化しない。図示する椅子および植物に加えて、静止物体は、キャプチャーデバイス20における撮像カメラによって撮影される物体であればいずれでもよい。この場面における追加の静止物体には、あらゆる壁、床、天井、窓、扉、壁飾り等を含むことができる。0050システム10およびそのコンポーネントに相応しい例が、以下の同時係属中の特許出願において見いだせる。これらの特許出願の全ては、ここで引用したことによって、具体的に本願にも含まれるものとする。2009年5月29日に出願されEnvironmentAndOrTargetSegmentation環境および/またはターゲット区分と題する米国特許出願第12/475,094号、2009年7月29日に出願されAutoGeneratingaVisualRepresentation視覚表現の自動生成と題する米国特許出願第12/511850号、2009年5月29日に出願されGestureToolジェスチャーツールと題する米国特許出願第12/474,655号、2009年10月21日に出願されPoseTrackingPipeline姿勢追跡パイプラインと題する米国特許出願第12/603,437号、2009年5月29日に出願されDeviceforIdentifyingandTrackingMultipleHumansOverTimeときの経過と共に複数の人間を識別および追跡するデバイスと題する米国特許出願第12/475,308号、2009年10月7日に出願されHumanTrackingSystem人間追跡システムと題する米国特許出願第12/575388号、2009年4月13日に出願されGestureRecognizerSystemArchitectureジェスチャー認識システムのアーキテクチャーと題する米国特許出願第12/422,661号、2009年2月23日に出願されStandardGestures標準的なジェスチャーと題する米国特許第12/391,150号、2009年5月29日に出願されGestureToolジェスチャーツールと題する米国特許出願第12/474,655号。0051図2は、ターゲット認識、分析、および追跡システム10において用いることができるキャプチャーデバイス20の実施形態例を示す。一実施形態例では、キャプチャーデバイス20は、深度値を含むことができる深度画像を有するビデオを、例えば、飛行時間、構造化光、立体画像等を含むいずれかの適した技法によって、取り込むように構成することができる。一実施形態によれば、キャプチャーデバイス20は、キャプチャーデバイス20は、計算された深度情報をZレイヤー、即ち、深度カメラからその見通し線に沿って延びるZ軸に対して垂直であることができるレイヤーに編成することができる。XおよびY軸は、Z軸に対して垂直であると定義することができる。Y軸は、垂直であり、X軸は水平であるとよい。X、Y、およびZ軸は、併せて、キャプチャーデバイス20によって取り込まれる3-D実世界空間を定義する。0052図2に示すように、キャプチャーデバイス20は撮像カメラコンポーネント22を含むことができる。一実施形態例によれば、撮像カメラコンポーネント22は、場面の深度画像を取り込むことができる深度カメラとすることができる。深度画像は、取り込まれた場面の二次元2-D画素エリアを含むことができ、この2-D画素エリアにおける各画素は、カメラから取り込まれた場面における物体の、例えば、センチメートル、ミリメートル等の単位とした、長さまたは距離のような深度値を表すことができる。0053図2に示すように、一実施形態例によれば、撮像カメラコンポーネント22は、場面の深度画像を取り込むために用いることができるIR発光コンポーネント24、三次元3Dカメラ26、およびRGBカメラ28を含むことができる。例えば、飛行時間分析では、キャプチャーデバイス20のIR発光コンポーネント24は、場面に向けて赤外線光を放出することができ、次いでセンサー図示せずを用いて、その場面の中にある1つ以上のターゲットおよび物体の表面からの後方散乱光を、例えば、3Dカメラ26および/またはRGBカメラ28を用いて検出することができる。0054実施形態の中には、パルス状赤外線光を用いて、発信光パルスと対応する入射光パルスとの間の時間を測定し、キャプチャーデバイス20から場面内にあるターゲットまたは物体上における特定の場所までの物理的距離を判定するために、この時間を用いることができるようにするとよい場合がある。加えて、他の実施形態例では、発信光波の位相を着信光波の位相と比較して、位相ずれを判定することもできる。次いで、位相ずれを用いて、キャプチャーデバイス20からターゲットまたは物体上の特定の場所までの物理的距離を判定することができる。0055他の実施形態例によれば、例えば、散乱光パルス撮像を含む種々の技法によって、経時的な光の反射ビームの強度を分析することによって、キャプチャーデバイス20からターゲットまたは物体上の特定の場所までの物理的距離を間接的に判定するために、飛行時間分析を用いることもできる。0056他の一実施形態例では、キャプチャーデバイス20は、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン光即ち、格子パターン、縞パターンのような既知のパターンとして表示される光を、例えば、IR発光コンポーネント24によって場面に向けて投射する。場面における1つ以上のターゲットまたは物体の表面に衝突したときに、パターンが、それに応答して、変形することができる。このようなパターンの変形を、例えば、3Dカメラ26および/またはRGBカメラ28によって取り込むことができ、次いで分析して、キャプチャーデバイス20からターゲットまたは物体上における特定の場所までの物理的距離を判定することができる。0057他の実施形態によれば、キャプチャーデバイス20は、2つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度からの場面を捕らえて、視覚的な立体像を得て、これを解明することによって深度情報を生成することができる。他の実施形態例では、キャプチャーデバイス20は、ポイントクラウドデーターおよびターゲットディジタル化技法を使用して、ユーザーの特徴を検出することもできる。0058更に、キャプチャーデバイス20は、マイクロフォン30を含むこともできる。マイクロフォン30は、音響を受けて電気信号に変換する変換器またはセンサー図示せずを含むことができる。一実施形態によれば、マイクロフォン30は、ターゲット認識、分析、および追跡システム10においてキャプチャーデバイス20と計算環境12との間におけるフィードバックを減らすために使用することができる。加えて、マイクロフォン30は、計算環境12によって実行することができる、ゲームアプリケーション、ゲーム以外のアプリケーション等のようなアプリケーションを制御するために、ユーザーが供給することもできるオーディオ信号を受け取るために用いることもできる。0059一実施形態例では、キャプチャーデバイス20は、更に、撮像カメラコンポーネント22と動作的に通信することができるプロセッサー32も含むことができる。プロセッサー32は、命令を実行することができる標準的なプロセッサー、特殊プロセッサー、マイクロプロセッサー等を含むことができる。これらの命令には、深度画像を受け取り、この深度画像に適したターゲットが含まれ得るか否か判定を行い、適したターゲットをそのターゲットの骨格表現またはモデルに変換する命令、またはあらゆる他の適した命令を含むことができる。0060キャプチャーデバイス20は、更に、メモリーコンポーネント34も含むことができる。メモリーコンポーネント34は、プロセッサー32によって実行することができる命令、3DカメラまたはRGBカメラによって取り込まれた画像または画像のフレーム、あるいはあらゆる他の適した情報、画像等を格納することができる。一実施形態例によれば、メモリーコンポーネント34は、ランダムアクセスメモリーRAM、リードオンリーメモリーROM、キャッシュ、フラッシュメモリー、ハードディスク、または他の適した記憶コンポーネントであればいずれでも含むことができる。図2に示すように、一実施形態では、メモリーコンポーネント34は、画像キャプチャーコンポーネント22およびプロセッサー32と通信することができる別個のコンポーネントであってもよい。他の実施形態によれば、メモリーコンポーネント34は、プロセッサー32および/または画像キャプチャーコンポーネント22に統合されてもよい。0061図2に示すように、キャプチャーデバイス20は、通信リンク36を介して、計算環境12と通信することができる。通信リンク36は、例えば、USB接続、Firewire接続、イーサネット登録商標ケーブル接続等を含む有線接続、および/またはワイヤレス802.11b、g、a、またはn接続のようなワイヤレス接続とすることができる。一実施形態によれば、計算環境212は、クロックをキャプチャーデバイス20に供給することができる。このクロックは、例えば、通信リンク36を介して場面をいつ取り込むべきか判定するために使用することができる。0062加えて、キャプチャーデバイス20は、例えば、3-Dカメラ26および/またはRGBカメラ28によって取り込まれた深度情報および画像を供給することができる。これらのデバイスの補助によって、本技術にしたがって部分的骨格モデルを製作し、その結果得られたデーターを計算環境12に、通信リンク36を通じて、供給することができる。0063更に、計算環境12は肢識別エンジン192を含むことができる。肢識別エンジン192は、候補身体部分を提案する身体部分提案システム194と、候補身体部分の折り合いをつけて全体的または部分的骨格を求める骨格解明システム196を有する。他の実施形態では、身体部分提案システム194および骨格解明システム196を含む肢識別エンジン192は、部分的にまたは全体的にキャプチャーデバイス20内で実行させることもできる。身体部分提案システム194および骨格解明システム196を含む肢識別エンジン192の更なる詳細については、以下で明記する。0064本技術の実施形態の動作について、これより図3の上位フローチャートを参照しながら説明する。ステップ280において、システム10を起動する。ステップ282において、キャプチャーデバイス20は画像データーを取り込む。ステップ286において、身体部分提案システム194は候補身体部分位置を提案する。様々な可能な実施形態の1つでは、身体部分提案システムは、原型を実行して重心を生成する。原型および重心の生成は、二次元深度テクスチャ画像を受け取り、その画像内にある特定の身体部分の適正な識別に関する確率を求める既知の技法である。実施形態では、以下で説明するように、ユーザーの頭部、肩、肘、手首、手について重心を生成する。しかしながら、他の実施形態では、重心は、下半身部分の関節、身体全体、選択した関節について生成してもよいことは言うまでもない。再度注記しておくが、原型および重心の生成は、画像において身体部分を識別する一例に過ぎず、多種多様の他の方法のいずれでも、この目的に用いてもよいことは言うまでもない。他のステートレスな技法を用いてもよい。更に他の実施形態では、以下で説明するように、例えば、マグネティズムを含むステートフルな技法を、付加的に用いてもよい。0065身体部分提案システムのステップ286は、キャプチャーデバイス20またはコンピューター環境12のいずれかにおいて、グラフィクス処理ユニットGPUによって実行することができる。このステップの一部は、キャプチャーデバイス20における中央演算装置CPUによって計算環境12のために実行することもでき、また他の実施形態では、専用のハードウェアによって実行することもできる。0066ステップ292において、骨格解明システム196は、以下で説明するように、上半身における関節を特定および追跡することができる。ステップ296において、骨格解明システム196は、計算環境12または計算環境12上で実行しているアプリケーションを制御する際に用いるために、特定した肢の位置を戻す。実施形態では、肢識別エンジン192の骨格解明システム196は、ユーザーの頭部、肩、肘、手首、および手についての情報を戻すことができる。更に他の実施形態では、戻される情報は、これらの関節の内一部のみ、下半身あるいは身体の左側または右側からの関節というような追加の関節、または身体の関節全てを含むこともできる。0067肢識別エンジン192の身体部分提案システム194および骨格解明システム196の更に詳細な説明を、図4Aおよび図4Bのフローチャートを参照しながら行う。一般に、肢識別エンジン192は、頭部、肩、および四肢を識別し、他の実施形態では、潜在的に他の身体部分も識別することが可能である。エンジン192は、重心または他の身体部分提案システムからの候補身体部分位置および深度マップデーターを消費し、プレーヤーの関節位置を、対応する信頼性と共に戻す。ステップ304において、キャプチャーデバイス20は、次のフレームのためにFOVの画像データーを取り込む。実施形態では、フレームレートは30Hzとするとよいが、他の実施形態では、フレームレートはこれよりも高くてもまたは低くてもよい。ステップ308において、肢識別エンジン192は、最初に頭部三角形を発見する。一般に、候補頭部三角形は、画像データーから原型によって特定された頭部および肩の重心のグループからの2カ所の肩に繋がれた1つの頭部重心から形成することができる。図10は、候補重心502、504、および506から形成された頭部三角形500の一例を示す。頭部三角形を発見するステップ308についての更に詳細な説明を、図5Aおよび図5Bのフローチャートを参照しながら、これより行う。0068一般に、原型は、ユーザーについての強い頭部および肩の信号を供給する。この信号は、1つの頭部および2つの肩の重心のパターンを一緒に発見できるときに一層強くなる。頭部の重心は、原型/重心以外のあらゆる数のソースから受けてもよく、例えば、ソースは、頭部マグネティズムおよび単純なパターン照合を含む。ステップ360において、肢識別エンジン192は、最新のフレームにおいて、新たな頭部および肩の重心を集める。新たな頭部および肩の重心は、以前のフレームにおいて発見された既存の重心、言い換えると、経時重心を更新するために用いられる。遮蔽が存在することもあるので、全ての重心が各フレームにおいて見える訳ではない。経時重心は、候補身体部分の位置の知識を、所与のゾーンの直前の処理から受け渡すために用いられる。ステップ364において、新たな頭部および肩の重心を用いて経時重心を更新する。新たな重心の内、経時重心の近くで発見されたものはいずれも、既存の経時重心に併合することができる。経時重心に近くない新たな重心は、いずれも、ステップ366において新たな経時重心として追加する。経時重心および新たな重心によって、多数の候補頭部三角形を得ることができる。0069ステップ368において、頭部三角形を組み立てることができる。頭部および肩が見える場合、頭部三角形は、前述のソースの1つ以上から組み立てることができる。しかしながら、例えば、1人のプレーヤーが他のプレーヤーの前に立っている場合というように、ユーザーの1つ以上の関節が偶然遮られることもあり得る。頭部または肩の関節の1つ以上が短い間遮られるとき、そこには新たな重心がないかもしれない新たな深度マップから。その結果、その位置を印していた経時重心は更新されるかもしれないし、またはされないかもしれない。その結果、この経時重心は、2つのことの内1つを実行する可能性がある。0070第1に、経時重心は、その位置が変化せずに、存続する遮蔽が終わるまで待つ可能性がある。第2に、経時重心は、間違って新しい近隣位置にジャンプする可能性がある例えば、左肩が遮られていたが、長椅子の左上縁が肩のように見え、そしてかなり近いと、経時重心がそこにジャンプする。これらの場合を扱うために、三角形の頂角の内1つ以上に対する経時重心を無視する追加の候補三角形を組み立てることもできる。3つの関節の内どれが遮られているか分からないので、以下で説明するように、評価のためにできるだけ多くの三角形を提案するとよい。0071場合によっては、1つの関節が遮られていることもある。例えば、左肩が遮られているが、頭部および右肩は見えることもあるこの場合も、遮られているのが左肩であることは未だ分っていない。頭部および右肩は、例えば、平均3mmだけ右に動いていたこともあり得る。この場合、左肩も右に3mmだけ動いたそれがあったところにドラッグしたり、間違って新たな場所にジャンプするのではなく追加の候補三角形も組み立てることにより、関節の内1つがある時間見ることができなくても、三角形状が特に、ときの経過と共に保存されるようにする。0072他の例では、頭部が、例えば、他のプレーヤーの手によって遮られているが、両肩は見えることもある。この場合、肩が動くと、新たな肩の位置を用いて、追加の候補三角形が作られるが、頭部は肩と同じ平均変位量だけ変位する。0073場合によっては、2つの関節が遮られることもある。3つの関節の内1つしか見えない場合、先に説明したように、他の2つが揃ってドラッグするすることができる即ち、1つの見える関節と同じ方向に同じ量だけ動く。00743つの関節のいずれもが見えない3つ全てが遮られている場合、適所に留まり続ける予備の候補三角形を作ることができる。これが役に立つのは、1人のプレーヤーが他のプレーヤーの前を歩いて、後ろにいるプレーヤーを完全に遮ったときであり、後ろのプレーヤーの頭部三角形がある時間量だけその場に存在することが許され、その後破棄されるときである。例えば、8秒間適所に留まることができるが、他の実施形態では、それよりも長い間または短い間留めておいてもよい。一方、その時間が経過する前に遮蔽が終わった場合、三角形は正しい場所にあり、後ろのプレーヤーの背後に機敏に移ることができる。これは、場合によっては、後ろのプレーヤーを再度発見するよりも望ましいこともある。何故なら、プレーヤーの識別が維持されるからである。0075頭部三角形を評価するための採点サブルーチンについて、以下に説明する、この採点サブルーチンを、頭部三角形トレースおよび突出と呼ぶ。このサブルーチンは、サンプル点それらの期待深度値、即ち、Z値を含むを、その画像における同じ画素X.Y位置における深度値に対して検査する。このサブルーチンは、三角形が偶然殆どまたは全体的にでも遮られている場合であっても、提案された三角形の中で深度マップに一番よく当てはまる三角形を選択するように設計されている。前述のように追加の三角形を含ませることによって、経時重心が短時間正しくなかったり、見失ったりしても、確実に正しい三角形を提案する。0076ステップ369において、頭部三角形を、採点サブルーチンによって評価することができる。ステップ368における肢識別エンジンの目標は、実際にFOVの中にいる1人以上のユーザーの頭部および肩の正しいインディケーターとなる、経時重心の頭部三角形を特定することである。肢識別エンジン192は、開始すると、頭部経時重心を左肩および右肩の経時重心と繋ぎ合わせることによって、多くの三角形を生成する。これらの各々が、候補頭部三角形を形成する。これらは、所与のユーザーの頭部および肩であっても、なくてもよい。次いで、多数の肩採点サブルーチンを実行することによって、これらの候補頭部三角形の各々を評価する。0077採点サブルーチンは、候補頭部三角形に対して実行して、最良の即ち、得点が最も高い頭部三角形を特定する。ステップ368における採点サブルーチンの更なる詳細について、これより図6のフローチャートに関して更に詳細に説明する。ステップ390において、第1採点サブルーチンが、候補三角形における2つの肩重心間の距離を測定し、左肩および右肩間の最小分離未満かまたは最大分離を超えているか否か確認する。例えば、人間の、左肩および右肩の間における最大の肩幅は約80cmであることが知られている。本システムは、追加のバッファをそれに加えることができる。2つの候補肩重心がこの最大値を超えた場合、この候補三角形を候補として取り除く。0078他の採点サブルーチンは、頭部が最小分離未満か、またはステップ394における両肩間の線よりも上の最大分離を超えているか否かについて測定することができる。この場合も、この寸法は、既知の最大値および最小値を有することもできる。本システムは、何らかの追加の緩衝をそれに加えることもできる。候補の頭部三角形がその最大値を超えるか、または最小値未満である場合、この候補を除外することができる。0079ステップ390および394と同様の採点ルーチンの他の例には、以下のものが含まれる。肩の中心から頭部の中心へのベクトル方向。この肩の中心から頭部の中心までのベクトルが好ましくない方向下というような方向を指し示す場合、三角形の得点が減点されるか、または論外の場合その三角形が破棄される可能性がある。左肩と右肩との間のベクトル。左肩と右肩との間のベクトルが好ましくない方向予期したのとは逆というような方向を指し示す場合、三角形の得点が減点されるか、または論外の場合その三角形が破棄される可能性がある。頭部から左/右肩までの距離の差。頭部からいずれかの肩までの2つの距離が徐々に大きく異なっていく場合、三角形の得点が減点されるか、または論外の場合その三角形が破棄される可能性がある。経時重心間の平均距離。3つの経時重心間の平均距離または、言い換えると、頭部三角形の縁の長さが非常に短いかまたは非常に長い場合、三角形の得点が減点されるか、または論外の場合その三角形が破棄される可能性がある。このサブルーチンまたは以上のサブルーチンのいずれかにおいて、サブルーチンの採点の結果候補三角形が破棄された場合、その候補について別のサブルーチン検査を実行する必要はない。他の採点サブルーチンを用いてもよい。0080候補頭部三角形を採点する際の重要な採点サブルーチンは、トレースおよび突出ステップ402および406である。トレースステップ402は、3本の線に沿ったトレースサンプルを取り込むことを伴い、各線は、候補頭部三角形における両肩間の線の中心において開始し、当該三角形の3つの先端に向かう。例えば、図10はユーザー18上における頭部サンプルトレース510を示す。トレースサンプル510に沿って画素を測定し、深度値が期待通りでない場合即ち、撮像カメラコンポーネント22からの深度データーによって示される、3-D実世界におけるユーザーの深度を表す、候補頭部三角形を減点する。0081以上のトレースサンプルの例は、関節間の線に沿って並んでいるサンプルを伴うが、トレースサンプルは、多種多様のユーザーについて身体内部に入るはずのサンプルであって、更に内部空間を均等に占めるサンプルであればいずれでもよい。実施形態では、これらのサンプルは人の最小のシルエットを埋めるのであればよい。実施形態では、これらのサンプルのレイアウトは、候補頭部三角形の向き、または他の候補の特徴に左右されて、劇的に変化する可能性がある。0082トレースサンプルについて、相応しいZ-一致期待深度値およびその画面のX,Y位置における実際の深度値が同様である場合は加点となり、相応しくないZ-一致は減点となる。不一致の一致に対する近さ/激しさは、減点/加点の量に作用することができ、正の不一致および負の不一致では、異なる得点を付けることもできる。一致について、近い一致は弱い一致よりも高い得点を得る。劇的な不一致は、その差の符号に基づいて、分けて扱う。深度マップサンプルが期待したよりも遠い場合、これは突出サンプルであり、厳しい減点を招く。深度マップサンプルが期待したよりも近い場合、これは遮蔽サンプルであり、軽い減点を招く。実施形態の中には、候補身体部分位置の深度間で、期待Z値を単に内挿補間する場合もある。他の実施形態では、首および肩に対する、あごおよび顔の突出のような、共通する非線形な身体の形状を補償するために、期待Z値を調節する。骨格の他の部分から開始する他の実施形態では、期待Z値の同様の内挿補間および調節を行うことができる。0083ステップ406における突出サブルーチンが動作すると、所与の候補頭部三角形における3つの点の各々を中心としてある距離の所に、多数の突出サンプル図10における512を定義する。実施形態の中には、これらのサンプルが三角形の点の上において円弧の形状をなすのであってもよい。ユーザーの体格は様々であると考えられるので、肩の周囲に形成される突出サンプル512は、可能な限り最も大きな即ち、嵩張るユーザーであってもその両肩の外部にこれらが確実に来るように、場合によっては頭部三角形または他の候補造作のサイズに対して十分に大きな半径で形成しなければならない。このサイズ調節は、子供の頭部は大人の頭部よりも比例して大きいことの観察に基づいて、頭部周囲のサンプルの半径には、より低い程度で適用してもよい。しかしながら、突出サンプル512は、ユーザーに対して最も大きい可能性がある頭部の外側に確実に来るように、候補三角形の頭部の位置を中心としてある距離の所に位置付けられる。高得点の候補頭部三角形では、トレースサンプル510とは対照的に、全ての突出サンプル512の深度値はユーザー18よりも深い即ち、Z方向において離れているはずである。0084突出サンプルについては、相応しいZ-一致は減点となり、相応しくないZ-一致は加点となり、正の不一致および負の不一致では、異なる得点を付けることもできる。深度マップ値が期待値に近い場合、これは減点を招く。そして、深度マップ値が期待したよりも近い場合、これは遮蔽サンプルであり、緩い減点を招く。0085ステップ390から406における種々のサブルーチンの得点を合計して、最高得点の頭部三角形を得る。これらの採点サブルーチンの中には、例えば、ステップ402および406のトレース検査および突出検査のように、この合計に他よりも大きく重み付けするとよい場合もある。尚、更に他の実施形態では、採点サブルーチンが異なれば、重みも異なる場合もあることは言うまでもない。更に、候補の頭部三角形が実際にFOVの中にいるユーザーの頭部および両肩を表すか否か評価するために、図6に示した採点サブルーチンに加えて、またはその代わりに、他の採点サブルーチンを用いてもよい。0086これより図5Aに戻り、一旦最高得点の候補頭部三角形を特定したなら、これらの三角形を既存のアクティブ、インアクティブ、および潜在的ユーザー上にマッピングする。具体的には、視野の中にいて人であると既に確実に識別されているユーザー椅子やマネキンではなくを、アクティブユーザーまたはインアクティブユーザーのいずれかに分類する。本システムは、潜在的ユーザーと、人間のように見えることがある物体との間で、手の動きを経時的に検出することによって区別する。実施形態では、処理の制約を想定して、本システムは視野の中にいる2人のユーザーの手の動きのみを追跡すればよい以下で説明する。このような実施形態では、2人のアクティブなプレーヤーを、人間のような手の動きによって、どちらの潜在的プレーヤーが最初に人として確認されたかというような、多数の規準のいずれかに基づいて選択することができる。代替案として、折り合いをつけた骨格データーの最後の消費箇所というような、システムにおける他のコンポーネントによって、アクティブプレーヤーを選択することもできる1組のアクティブプレーヤーおよびインアクティブプレーヤーの中から。残りの識別されたユーザーは、インアクティブユーザーとなる。アクティブユーザーの手の動きを追跡するが、インアクティブユーザーの手の動きは、追跡しない。更に他の実施形態では、2人よりも多いユーザー、または全てのユーザーをアクティブと見なし、彼らの手の動きを追跡するようにしてもよい。0087また、深度カメラが、肢IDエンジンによる処理の結果として、視野内に、以前に特定されていない新たな人を含むように見える画像を検出したということが起こる場合もある。この場合に示されたユーザーを、潜在的ユーザーと呼ぶ。潜在的ユーザーの手の動きを、これらを人間であると確実に識別できるまで、多数のフレームにわたって追跡することができる。識別できた時点において、状態が潜在的ユーザーからアクティブユーザーまたはインアクティブユーザーのいずれかに切り替わる。0088ステップ370において、アクティブプレーヤー毎に、最高の候補三角形を既存のアクティブプレーヤー上にマッピングする。アクティブプレーヤーの直前のフレームの頭部三角形に基づいて、視野の中にいて直前のフレームからサイズまたは位置が大きく変化していなさそうなアクティブプレーヤーに三角形をマッピングすることができる。ステップ372において、ステップ370においてマッピングした三角形に近すぎる候補三角形を、いずれも候補としては破棄する。これは、2人のユーザーが同じフレームにおいて実質的に同じ空間を占めることはできないからである。次いで、直前のフレームに他にいずれかのアクティブプレーヤーがいる場合、本プロセスはステップ373において繰り返す。0089ステップ370および372は、具体的には、以下のステップを含むことができる。直前のフレームのプレーヤー毎に、各候補三角形をプレーヤーと突き合わせて検査する。次いで、三角形の形状がどの位変化したかに比例して、減点を適用する。次に、三角形またはその頂角がどの位動いたかに比例する減点を適用する減点は線形でも非線形でもよい。また、ここで点の運動予測運動量を考慮にいれてもよい。次いで、最高の得点となった三角形を選出する。得点が閾値よりも高い場合、この三角形を直前のフレームのプレーヤーに割り当て、近隣にある他の全ての候補三角形を破棄する。他の直前のフレームのプレーヤー毎に、以上のステップを繰り返す。他の実施形態では、候補三角形を直前のフレームのアクティブプレーヤーの三角形と照合するのに、異なる採点規準を用いることもできる。0090ステップ374において、インアクティブプレーヤー毎に、上位候補三角形を既存のインアクティブプレーヤー上にマッピングする。インアクティブプレーヤーの直前のフレームの頭部三角形に基づいて、視野の中にいるインアクティブプレーヤーに三角形をマッピングすることができる。ステップ376において、ステップ374においてマッピングした三角形に近すぎる候補三角形を、候補としては破棄する。次いで、直前のフレームに他にいずれかのインアクティブプレーヤーがいる場合、本プロセスはステップ377において繰り返す。ステップ374および376の更なる詳細は、直前の節において説明した通りでよい。同様に、ステップ378において、潜在的なプレーヤー毎に、上位候補三角形を、特定した潜在的プレーヤー上にマッピングする。潜在的なプレーヤーの直前のフレームの頭部三角形識別された場合に基づいて、または潜在的なプレーヤーの位置を特定する他の既知の方法に基づいて、視野の中にいる潜在的なプレーヤーに三角形をマッピングすることができる。ステップ380において、ステップ378においてマッピングした三角形に近すぎる候補三角形を、いずれも候補としては破棄する。次いで、直前のフレームに他にいずれかの潜在的なプレーヤーがいる場合、本プロセスはステップ381において繰り返す。ステップ378および380の更なる詳細は、直前の節で説明した通りでよい。0091ステップ382図5Bにおいて、肢識別エンジン192は、ユーザーにマッピングされておらず破棄もされていない候補三角形の残り物の中に相応しいものがないかチェックする。ある場合、これら残り物の相応しい候補三角形を、視野に入って来た新たなユーザーに属すると解釈することができる。この場合、ステップ384において、残り物の頭部三角形をその新たなユーザーに割り当て、この新たなユーザーを潜在的ユーザーと名付ける。次いで、手の動きについて先に説明したように、この潜在的ユーザーの手の動きを連続フレームにおいて追跡する。0092再度図4Aを参照する。ステップ308において頭部三角形を特定した後、肢識別エンジン192は、ステップ310において手の提案を発見する。これらの動作は、全てのアクティブユーザーおよび潜在的ユーザーについて実行することができる。実施形態では、インアクティブプレーヤーについては手の提案を追跡しないが、他の実施形態ではこれらを追跡してもよい。アクティブユーザー、インアクティブユーザー、および潜在的ユーザーについて、頭部三角形の動きを追跡することができる。0093実施形態では、種々の方法によって手の提案を発見し、一緒に組み合わせることができる。第1の方法では、手であると正しく識別された確率が高い重心を用いる。本システムは、例えば、片側当たり7つ左手毎に7つの提案、および右手毎に7つの提案というように、多数のこのような手の提案を用いることができる。所与の側で選択した重心手提案に加えて、原型はときとしてどの手がどちらなのか混乱することがある。このため、例えば、更に4つといように、追加の数の候補を、関連のある肩の反対側における手の重心について取り込むとよい。尚、これらの数よりも多いまたは少ない手の提案も、他の実施形態では用いてもよいことは言うまでもない。0094手の提案を集める第2の方法は、マグネティズムmagnetismと呼ばれる技法による。マグネティズムは、以前の1つまたは複数のフレームからの骨格造作例えば、手の位置を、新たな深度マップに撮るという概念を伴う。例えば、以前のフレームにおいてあるユーザーの左手が識別され、その手が分離されている何も触っていない場合、マグネティズムは、現在のフレームにおけるその手の位置を、新たな深度マップを用いて、精度高く更新することができる。加えて、手が動いている場合、2つ以上の以前のフレームにわたってその手の動きを追跡することによって、新たなフレームにおけるその位置の正しい推定を行うことができる。この予測した位置は、手の提案として明白に用いることができる。加えてまたは代わりに、この予測した位置を現在の深度マップに、マグネティズムを用いて撮ることができ、現在のフレームよりも一致する他の手の提案を得ることができる。実施形態では、肢識別エンジン192は、以下で説明するように、種々の開始点に基づいて、プレーヤー毎に各側で各プレーヤーの左手について3つ、そして各プレーヤーの右手について3つマグネティズムによって3つの手の提案を行うことができる。実施形態では、重心およびマグネティズムの内一方または他方を、双方の代わりに、用いてもよいことは言うまでもない。更に、更に他の実施形態では、手の提案を発見するために、他の技法を採用してもよい。0095マグネティズムによって手の提案を発見する特殊な場合が、前腕の手に向かってその軸に沿った動きの有無をチェックするときに適用される。この場合、マグネティズムは、ユーザーの手を彼らの前腕の中間まで撮ることができるが、これは望ましくない。この場合正しく処理するためには、本システムは、手の位置を下腕よりもある距離だけ下に動かしたとき、例えば、ユーザーの前腕の長さの15動かし、次いでマグネティズムを用いて撮ったときの、他の手の提案を生成することができる。これによって、前腕に沿った軸方向の運動の場合に、手の提案の1つが正しく位置付けられることを確保する。0096マグネティズムは、身体部分の提案を深度マップに撮ることによって、その位置検出を厳格に求める。これは、手、足、および頭部というような、関節を区切るのに非常に有用である。実施形態では、これは、深度マップにおいて近隣の画素を調べて提案の位置に最も近い3Dにおいて画素を求めることを伴う。一旦この最も近い点が発見されたなら、その点を、厳格な手の提案として用いることができる。しかしながら、その点は、大抵の場合、対象となる造作手のような造作の中心ではなく縁にあるが、中心の方が望ましい。このため、追加の実施形態では、前述した最も近い点からある距離3Dにおいて以内にある近隣画素を探すことによって、手の提案を更に厳格に求めることができる。この距離は、身体部分手のような身体部分の期待直径にほぼ一致するように設定するとよい。次いで、最も近い点からこの距離以内にある画素の一部または全ての位置の平均を取り、手の提案の更に厳格な位置を求めることができる。実施形態では、最も近い画素および寄与する画素を結ぶ滑らかな経路を発見できない場合、この平均に寄与する画素の一部を拒否してもよいが、実施形態ではこれを省略することもできる。0097一旦ステップ310における種々の方法から手の提案が発見されたなら、ステップ312においてこれらを評価する。頭部三角形の場合と同様、種々の採点サブルーチンによって、候補の手の提案に対して種々の重心およびマグネティズムを実行することによって、手の提案を評価することができる。これらのサブルーチンについて、これより図7のフローチャートに関して更に詳しく説明する。0098ステップ410において、手の提案の近くにおける画素の動きの有無をチェックする採点サブルーチンを実行することができる。この検査では、手の提案の近傍における画素がどの位速く動いているか検出する。実施形態では、この動き検出技法は、手だけでなく他の身体部分の提案について、動きを検出するためにも用いることができる。視野は、直交座標系を基準にして決めることができ、Z軸は深度カメラ20から真っ直ぐ外に向かい、X-Y平面はZ軸に対して垂直になる。X-Y平面における動きは、その画素位置における深度値を、あるフレームと次のフレームとの間で比較したときに、所与の画素位置における劇的な/急激な深度変化として現れる。このような劇的なZ-変化を受ける画素の量種々の位置におけるは、手の提案の近傍においてどの位X-Yの動きがあるかという指示を与える。0099Z方向の動きは、これらの画素間における、正味の正または負の平均的な前方または後方の動きとして現れる。手の提案の位置X-Y平面に近い画素の内、直前のフレームおよび新たなフレームの双方において、その深度値が手の提案の深度に近い画素だけを考慮すればよい。一緒に平均を取ると、これらの画素のZ変位が全て前方または後方に動く場合、これは、大まかに空間的に一貫性のあるZ方向への手の動きの指示となる。そして、この場合、この動きの正確な速度は直接分かる。00100次に、X-Y平面における動き、およびZ軸方向の動きを組み合わせて、X、Y、およびZ方向の手の動きの総量を示す。次いで、これを手の動きの得点におよびこの手の提案において累積されたあらゆる手の仮説の得点にも分解するすることができる。一般に、手の提案の近傍におけるXYZ方向の動きは、手の提案が、家具のような生命のない物体ではなく、生きている存在に属することを示す傾向があり、ステップ410においてその手の提案に対してより高い得点が得られる。実施形態では、本システムが人としてまたは人以外として破棄しようとする潜在的なプレーヤーに対して、このスコアにより多くの重み付けをすることができる。00101ステップ416において、肢識別エンジン192は、提案された手が、この提案が指す手の最後の直前フレームの位置からどれだけ遠くまでジャンプしたかチェックする別の採点サブルーチンを実行することができる。ジャンプが大きい程、現在の候補は手でないことを示す可能性が高く、それに応じて得点は減点される。ここでは、限定は線形でも非線形でもよい。00102原型によって生成された手の提案について、肢識別エンジン192は、更に、ステップ420において所与の手の提案に対して重心信頼性を用いることができる。この重心信頼性が高い値であると、その手の提案に対する得点が加点される可能性が高くなる。00103ステップ424において、肢識別エンジン192は、対応する肩からの手の提案の距離をチェックする採点サブルーチンを実行することができる。肩からの距離が、肩と手との間で可能な距離よりも長い場合、これに応じて得点を減点する。この肩から手までの距離の最大範囲は、推定されたプレーヤーの体格にしたがって調整することができる。プレーヤーの体格は、ときの経過と共に減衰する頭部-肩三角形から、またはプレーヤーの腕の長さから求めることができる。00104ステップ428において、他の採点サブルーチンによって、ステップ410における弱い画素動き得点と結び付けて、手の提案を直前のフレームにおいて追跡するのに成功したか否かチェックすることができる。このサブルーチンは、手が直前のフレームにおいて追跡されなかった場合、動き得点閾値と一致するまたはこれを超える手の提案のみを考慮すればよいという事実に基づく。この理由のために、腕または手のように見える椅子の肘掛けのような深度が動かない造作は、連続する可能性は低い。手は、追跡を開始するためには、動かなければならない家具は動かない。しかし、いつ動いても、動くのを止めることができ、それでも追跡することができる。以下で説明するが、頭部三角形照合によって特定した肩の位置が分かっていると仮定して、所与の手の候補、種々の可能な肘の位置を計算する。以上で説明した手採点サブルーチンは、いずれも、以下で説明するように、発見された手/肘の組み合わせの各々について実行することができる。しかしながら、以上で説明した手採点サブルーチンはいずれも肘の位置には依存しないので、処理の観点からは、これらのサブルーチンを、種々の肘の位置をチェックする前に実行する方が一層効率的である。図7における採点サブルーチンの各々からの得点を合計し、以下で説明するように用いるために格納することができる。00105再度図4Aを参照すると、ステップ318において、手の提案毎に、多数の肘の位置を検査し、肘の位置毎に手、肘、および肩を採点して、完全な腕の仮説を得る。可能な肘の位置の数は、様々であり、例えば、10と100の間である可能性もあるが、他の実施形態ではこの範囲よりも広い場合も狭い場合もあり得る。また、肘の位置の数は、動的に変化することもあり得る。手の提案および固定された肩に対して、肘の位置を選択し、肘がその位置にある全体的な腕の仮説を採点し、次の肘の位置を選択し、全体的な腕の仮説を採点するというように、所望数の肘の位置を計算し、腕の仮説を採点し終えるまで続ける。あるいは、採点する腕の仮説の数は、利用可能な計算時間を最大限用いるために、動的に決定することもできる。これは、ステップ316の後に残っている手の提案毎に実行して、種々の腕の仮説についての得点を決定する。00106一般に、所与の手の提案および既知の肩の位置に対して可能な肘の位置は、円に沿って並ぶように制約を受ける。この円は、2点肩および手を取り、直前のフレームまたはこのデーターが入手できない場合は推定値からの既知の上腕および下腕の長さを取り、次いでこれらの制約を仮定して、肘が通るはずの円中心、x、y、z、および半径を数学的に計算することによって定義する。この問題は、周知の分析解を有し、一般に、点1から距離D1のところ、および点2から距離D2の所にある全ての点を記述するのは円である。手と肩との間の距離がD1D2未満である限り、有効な円がある。候補の肘位置は、この定義された円から選択することができる。しかしながら、これらの位置は不規則に乱れる可能性もある。これは、上/下腕の長さが正しくないかもしれないからであり、または肩/手の位置が近いが完全ではないかもしれないからである。00107尚、候補の肘位置は、例えば、腕の重心を含む、他の方法でも発見できることは言うまでもない。更に他の実施形態では、肘の位置に完全に不規則な点を選択することもでき、直前のフレームの肘の位置を用いることもでき、運動量射影肘位置を用いることもできる。また、これらの予測も乱れる動き回る可能性があり、異なる混乱で1回よりも多く用いられる可能性がある。00108図8は、手の提案毎に、各肘位置について実行することができる採点サブルーチンの更なる詳細を示す。ステップ430において、肢識別エンジン192は、現在の肘の位置および手の提案によって与えられる上腕および下腕の長さを測定することができる。上腕および下腕を組み合わせた長さが長すぎる場合または短すぎる場合、その肘位置および手の提案に対する得点を減点する。00109ステップ434において、全長をチェックする代わりに、肢識別エンジン192は、上腕の長さの上腕および下腕の長さの和に対する比を、その腕の仮説についてチェックするサブルーチンを実行することができる。この比率は、人間の身体では、0.45および0.52の間で殆ど普遍である。この範囲を外れる肘の位置はいずれも減点すればよく、この減点は期待範囲から外れる超過量に比例する。一般に、これらの採点関数、および本明細書において説明する他の採点関数は、連続でかつ微分可能であるとよい。00110ステップ436において、所与の腕の仮説が力学的に有効か否か検査する採点サブルーチンを実行することができる。即ち、人の上腕および下腕の動きの既知の位置、ならびに腕の胴体に対する可能な向きを想定すると、人は所与の腕の仮説において、関節の位置を有効に有することができる。有効でない場合、腕の仮説を減点するか、または除去することができる。実施形態では、力学的有効採点サブルーチンを開始すると、3D実世界空間における人の位置を、この人の胴体の基準フレーム実世界空間とは独立しているに対して平行移動および回転させることができる。このサブルーチンの動作は、他の実施形態では、実世界空間における人の位置/向きを用いて実行することができるが、最初に人の胴体の基準フレームに対してユーザーを平行移動させる方が、計算的には容易である。00111この基準フレームにおいて、胴体空間に対する直交正規基準ベクトルを次のように可視化することができる。Xは左肩から右肩に向かう方向であり、Yは胴体/脊柱を上に向かう方向であり、Zはプレーヤーの胸部を通って外に向かう方向である即ち、概略的に実世界空間におけるZの逆である。この場合も、この基準のフレームは一例に過ぎず、他の実施形態では様々であってもよい。00112その後、所与の上腕位置に対して、肢識別エンジン192は、下腕が、この所与の上腕位置に対してこの下腕の可能な位置方向および角度を定義する円錐の中に入るか否かチェックする。前述の直交正規基準ベクトルを用いると、上腕は、6つの直交正規ベクトル位置上腕前、上腕後ろ、上腕左、上腕右上、上腕下に沿ってまたはこれらの間に位置する可能性がある。上腕のこれら直交正規方向の各々について、下腕の可能な方向を定義する対応する円錐は、指定するのが容易であり、大まかに分かっている。上腕の方向は仮説においてこれら6つの直交正規方向の内1つと正確に整列するのは希であり、代わりにこれらの内数個の間に位置することが多いので、最も近い直交正規上腕方向と関連付けられた円錐の定義を一緒に配合して、上腕が位置する特定の方向に合わせて特別に作られた新たな円錐を生成する。この配合において、上腕が最も接近して整列する軸の円錐はより多くの重みを受け取り、上腕の反対方向に位置する軸の円錐は0の重みを有する。一旦配合円錐が分かったなら、次に下腕がこの円錐の中に位置するか否か確認するために検査する。次いで、下腕の方向が有効な下腕の方向の配合円錐の入らない腕の仮説を減点することができ、または論外である場合、破棄することできる。この減点は、線形でも非線形でもよい。00113尚、力学的に有効な腕の位置を検査する方法は他にもあることは言うまでもない。このような方法には、姿勢辞書参照、ニューラルネットワーク、または多数の他の分類技法の内いずれでも含まれる。00114ステップ438において、現在の肘の位置が、最後のフレームにおいて決定された肘の位置からどれくらい遠くまでジャンプしたかチェックする採点サブルーチンを実行することができる。ジャンプが大きい程、減点も大きくなる。この減点は、線形でも非線形でもよい。00115ステップ440および444において、腕の仮説に対してトレースおよび突出サブルーチンを実行して、採点することができる。具体的には、図11を参照すると、所与の手の提案、肘、および既知の肩の位置に対して、上腕および下腕の中心線に沿った半径において、トレースサンプル516を定義することができる。この半径は、これらのサンプルが、腕が細いユーザーであっても、ユーザーの上腕および下腕の間に確実に入るように十分に小さく設定する。一旦トレースサンプルを定義したなら、これらのトレースサンプルの深度を調べる。個々のサンプルが深度マップとの相応しくないz不一致を有する場合、このトレースサンプルは悪い得点を得る。全てのサンプルからの得点を記録して、最終的な得点を得ることができる。図9から図11におけるユーザー18は一方の腕を彼の背中の後ろに回しているが、トレースサンプル、および以下で説明する突出サンプルも、左腕および右腕双方について取り込むことができることを注記しておく。更に、ユーザーの上半身を追跡するこの例では、図9から図11におけるユーザー18は、代わりに座ってもよい。00116同様に、X-Y平面キャプチャーデバイス20に対して垂直内で腕の関節において、突出サンプル520を円、半円、または部分円状に定義する。また、突出サンプルは、図11における上腕の回りに見られるように、レール状に並ぶこともでき、これらの肢セグメントがZ方向に整列されていない場合図11では、明確化のために、下腕の回りの突出サンプルを省略する上腕および下腕の各側で平行な線となる。円およびレール上双方におけるこれらのサンプルの全てを、実際の関節よりもある距離だけ離れたところXY平面内に並べる。所与のサンプルの半径は、仮説が正しい場合、非常に太ったプレーヤーについてでも、サンプルが全てプレーヤーの腕のシルエットの外側に並ぶように、十分に大きくなければならない。しかしながら、最適な結果を得るために、半径はそれよりも大きくてはならない。00117一旦サンプル位置をXY平面に並べたなら、各サンプル位置において観察した深度値と期待深度値を比較することができる。次いで、突出サンプルの内いずれかが、仮説の深度と同様の深度を示す場合、これらのサンプルを減点する。例えば、図11において、突出サンプル520A図では塗り潰した正方形で示すは、上腕および手の回りで減点される。トレースおよび突出検査の個々のサンプルの得点は、頭部三角形を考慮するときのトレースおよび突出検査について先に説明したのと同様とすればよい。00118以上の実施形態では、トレースおよび突出が一緒に動作する場合について纏めて論じたが、他の実施形態では、これらを個別におよび/または単独で用いることができることは注記してしかるべきである。例えば、システムがトレースサンプルのみを用いて、または突出サンプルのみを用いて、種々の身体部分の回りの仮説を採点することもできる。00119トレースおよび突出サブルーチンによって与えられる得点には、図8および図8に示した他のサブルーチンよりも高く重み付けすることができる。しかしながら、図7および図8における異なるサブルーチンは、異なる実施形態では異なる重みが与えられてもよいことは言うまでもない。更に、図7および図8に示すサブルーチンは一例に過ぎず、他の実施形態では、他のまたは代わりのサブルーチンを用いて、手の提案および可能な肘の位置を評価してもよいことも言うまでもない。00120一旦全ての腕の仮説についての得点を決定したなら、最も高い得点1つまたは複数を有する腕の仮説を、図4Aのステップ322において特定する。これは、そのフレームに対する手、手首、下腕、および上腕を含む、ユーザーの左腕および右腕の位置の強いインディケーターを表す。ステップ326において、特定した肘の位置の近傍で肘の位置を動かすことによって、最も得点が高い腕の提案に対する肘の位置を更に厳格に求める。ステップ328において、肢識別エンジン192は、腕の位置を厳格に求めた結果、この腕の仮説の腕の位置の得点が高くなったか否かチェックする。高くなった場合、ステップ332において、厳格に求めた腕の仮説が、これまで得点が最も高かった仮説と置き換わる。ステップ326から332までは任意選択肢であり、他の実施形態では省略してもよい。00121ステップ336において、ユーザーの左腕および右腕について得点が最も高い腕の位置を、何らかの既定の閾値信頼性値と比較する。実施形態では、この閾値は、直前のフレームにおいて手が信頼性を持って報告されたか否かに基づいて、または他の要因に基づいて変化することができる。これより図4Bを参照すると、ステップ340において、高い得点の左腕または右腕が閾値よりも低い場合、ステップ342において、信頼性報告を行わず、その腕についての腕データーをそのフレームに対して戻さない。00122ステップ342において、所与のアームに対して信頼性報告を行わない場合、本システムは、このフレームに対して、その腕についての信頼性値やデーターを戻さなくてよい。この場合、本システムはステップ354に直接移って、以下で説明するように、潜在的なプレーヤーが確認されたかまたは除去されたか調べることができる。一方の腕の得点が閾値を超えたが他方が超えない場合、本システムは、閾値よりも高い腕についてのデーターを戻すことができる。一方、ステップ340において、双方の腕が閾値よりも高い得点を上げている場合、ステップ346において、頭部、両肩、肘、手首、および手を含む上半身における全ての関節についてその位置を戻す。以下で説明するが、これら頭部、肩、および腕の位置は、種々の動作のいずれでも実行できるように、計算環境12に供給する。種々の動作には、計算環境12上で実行するアプリケーションによる、ジェスチャー認識、およびディスプレイ14上に提示された仮想物体との対話処理が含まれる。00123ステップ350において、肢識別エンジン192は、任意に、特定されたユーザーの手の位置を更に厳格に求めようとすることができる。ステップ350において、肢識別エンジン192は、肘から手までの実世界空間ベクトルに沿って、下腕から最も離れた画素を発見して繋ぎ合わせることができる。これらの画素は、フレーム深度マップにおいて手にも繋がれる。次いで、これらの画素の内ある数または全ての平均を取り、ユーザーの手の位置を更に厳格に求めることができる。00124更に、肘から手のベクトルに沿って、これらの画素がどの位離れて位置するかに基づいて、これらの画素を採点することができる。次いで、この集合において、得点が最も高いある数の画素の平均を取り、滑らかな手の先端の位置を求めることができ、この集合において次に得点が高いある数の画素の平均を取り、滑らかな手首の位置を求めることができる。更に、これら2つの位置の間のベクトルから、滑らかな手の方向を導き出すことができる。用いる画素の数は、手の提案の深度、ユーザーの体格の推定値、またはその他の要因に基づくとよい。00125更に、繋がれている画素を探している間に、境界半径を用いてもよい。この半径は、開いている手の最大期待半径であり、プレーヤーの体格および手の深度に合わせて調節される。この境界半径にヒットする正得点画素が発見された場合、これは、手の先端を厳格に求め損ねたらしいことの証拠となり手を超えた何らかの物体または身体部分に広がる、この厳格に求めた手の先端を、信頼性を付けずに、報告することができる。ステップ350は、ユーザーの手が他の物体と接触していないときに、最も正しく動作する。これは、多くの場合、信頼性検査に合格する十分な突出得点を有する腕に当てはまる。ステップ350は任意選択肢であり、他の実施形態では省略してもよい。00126先に示したように、アクティブユーザーにもインアクティブユーザーにも未だ関連付けられていないフレームにおいて、適した頭部三角形が特定された場合、これらの頭部三角形を潜在的なプレーヤーとして結び付ける。ステップ354において、肢識別エンジン192は、これら特定した潜在的なプレーヤーが、以下で説明するような、人の手の動きを行ったか否かチェックする。行っていない場合、エンジン192は、ステップ355において、十分な時間が経過したか否か、または手の動きを探し続けるためにもっと長い時間が必要か否か判断することができる。潜在的なプレーヤーから人の手の動きを確認できずに十分な時間が過ぎた場合、ステップ356において、潜在的なプレーヤーは間違いであったとして削除する。ステップ355において、潜在的なプレーヤーが人の手の動きを行ったか否か結論を出せる程十分な時間が経過していない場合、本システムは図4Aのステップ304に戻ることができ、次のフレームのデーターを入手して、図4Aから図8までに示すステップを繰り返す。00127各フレームの終端において、潜在的なプレーヤー毎に、肢識別エンジン192は、潜在的なプレーヤーが人か否か判断することを試みる。最初に、頭部および手追跡履歴を調べて、過去の15程度のフレームを求める。他の実施形態では、これよりも多いフレームでも少ないフレームでもよい。選択した数のフレームの中に潜在的なプレーヤーが存在していた場合、以下のことをチェックすることができる。1これらのフレームの全てにおいて、頭部三角形が詳しく追跡されたか否か。2これらのフレームの全てにおいて、左手または右手のいずれかが一貫して追跡されたか否か。3これらのフレームの中でやや滑らかな経路に沿って少なくとも最小の正味距離だけ、例えば、15cm手が動いたか否か。他の実施形態では、この値よりも大きくてもまたは小さくてもよい。これらが肯定の場合、プレーヤーを人として確認したと見なし、アクティブユーザーまたはインアクティブユーザーに格上げする。00128プレーヤーを最初に追跡して以来15フレームが未だ経過していないが、以上の制約の内いずれかが早い時期に違反された場合、潜在的なプレーヤーは人間ではないとして破棄し、新たな潜在的なプレーヤーを次のフレーム上において選択することができる。例えば、潜在的なプレーヤーが存在する5番目のフレームにおいて、いずれの手も追跡できなかった場合、この潜在的なプレーヤーを直ちに抹消することができる。00129また、この判断には、ある種の他の検査も用いることができる。最小の正味距離検査は、動きがない背景物体を落とすように設計されている。やや滑らかな経路の検査は、何らかの人の手の動きを行っている人の手を殆ど通すが、不規則で、混沌とした動き大抵の場合、カメラのノイズによるをする背景物体を殆ど常に落とすように設計されている。人の手の動きは、約30Hzで観察すると、人ができるだけ速くそして鋭い動きを行おうとしている場合であっても、ほぼ常にやや滑らかとなる。やや滑らかな検査を設計するには、多種多様な方法がある。00130一例として、このような実施形態の1つは以下のように動作する。手について15フレームの位置の履歴がある場合、中央にある11フレームを考慮することができる。フレーム毎に、以下のようにして代替位置を再現することができる。1単純な線形投影を用いて、直前の2つのフレームにおける位置のみに基づいて、手の位置を予測する。2続く2つのフレームにおける位置に基づいて、手の位置を逆予測する。32つの予測の平均を取る。4この平均を、そのフレームにおいて観察した手の位置と比較する。これは、このフレームに対する誤差となる。00131この誤差を11フレーム分合計する。また、フレーム間で手が移動した距離も、11フレーム分合計する。次いで、誤差の和を、移動した正味距離で除算する。この結果がある比率例えば、0.7というような比率よりも高い場合、この検査は不合格となる。そうでない場合、この検査は合格となる。尚、潜在的なプレーヤーを人として確認し、アクティブプレーヤーまたはインアクティブプレーヤーに格上げするか否か判断するためには、他の方法を用いてもよいことは言うまでもない。00132前述のように、ステップ354において、潜在的なプレーヤーが人であると確認した場合、ステップ358において、この潜在的なプレーヤーをインアクティブプレーヤーまたはアクティブプレーヤーに格上げする。ステップ356または358のいずれかを実行した後、本システムは図4Aのステップ304に戻り、次のフレームのデーターを入手して、図4Aから図8までに示すステップを繰り返す。このように、本技術は、各フレームにおいてキャプチャーデバイス20から受け取ったデーターを評価し、そのフレームにおける1人以上のユーザーの1つ以上の関節の骨格位置を特定することができる。00133例えば、図12に示すように、肢識別エンジン192は、頭部522、肩524aおよび524b、肘526aおよび526b、手首528aおよび528b、ならびに手530aおよび530bの位置を戻すことができる。図12に示す種々の関節の位置は一例に過ぎず、これらは、他の例では、可能なユーザー位置であればいずれにでも変化する。また、ユーザーの関節の一部のみを測定すると、処理効率を超えた、潜在的な利点が得られる可能性があることも言うまでもない。更に、矛盾するジェスチャーを受け取り処理する可能性を回避するために、特定の1組の関節に焦点を絞るのでもよい。追跡しない関節は、所与のジェスチャーが行われたか否か判断するときに、無視する。00134以上で説明した実施形態では、肢識別エンジン192を用いてユーザーの上半身における関節を特定した。尚、同じ技法は、ユーザーの下半身における関節を発見するために用いてもよいことは言うまでもない。更に、ストロークから復帰しているユーザーというような、ある種のユーザーは、彼らの身体の左側または右側だけを使用することもあり得る。以上で説明した技法は、ユーザーの身体の左側または右側を追跡するためにも同様に用いることができる。一般に、いずれの数の関節でも追跡することができる。他の実施形態では、以上で説明した本システムは、ユーザーの身体における全ての関節を追跡するために用いることができる。指またはつま先の骨および関節、あるいは鼻および目というような顔の個々の造作というような、追加の造作も特定することができる。00135ユーザーの身体の関節の内一部のみに焦点を絞ることによって、本システムは、全ての身体の関節を測定するシステムよりも効率的に画像データーを処理することができる。このために、オブジェクトをレンダリングするときに処理の高速化およびレイテンシーの低減が得られる。あるいはおよび/または加えて、これによって、所与のフレームレート以内で追加の処理も実行することが可能になる場合もある。この追加の処理は、例えば、フレーム毎に生成する関節データーの精度を更に確保するために、より多くの採点サブルーチンを実行する際に用いることができる。00136更に処理効率を高めるために、画像データーを取り込むキャプチャーデバイスは、視野をもっと小さなエリアまたはゾーンに区分することもできる。このような実施形態を、例えば、図13Aおよび図13Bに示す。図13Aでは、FOVを3つの縦向きゾーン532a、532b、および532cに区分する。ユーザーは一般にキャプチャーデバイス20の真正面に立つという仮定を行うことができる。したがって、追跡すべき動きの殆どは、中央ゾーン532b内で行われる。実施形態では、キャプチャーデバイス20はゾーン532bというような、1つのゾーンだけに焦点を絞ることができる。あるいは、キャプチャーデバイスは、この例では、3フレーム毎に1回各ゾーンからフレームデーターを読み取るように、連続フレームでこれらのゾーンを一巡することもできる。他の実施形態では、キャプチャーデバイスは、中央ゾーン532bのような1つのゾーンに焦点を絞るが、既定数のフレーム毎に1回残りのゾーンも周期的に走査することもできる。それぞれのゾーン532a、532b、および532cの他の走査シナリオも考えられる。更に、3つのゾーンへの区分は一例に過ぎない。他の実施形態では、2つのゾーンまたは3つよりも多いゾーンがあってもよい。明確な境界を有するゾーンが示されているが、他の実施形態では、これらのゾーンが互いに多少重複するのであってもよい。00137他の例として、図13Bは、横に並んだゾーン532a、532b、および532cを示す。図13Bにおける種々のゾーン532a、532b、および532cの走査は、図13Aに関して先に論じた例のいずれかに従えばよい。図13Aおよび図13Bは二次元の区分を示すが、これらの実施形態のいずれかまたは双方は、更に、X-Yに加えて、あるいはXまたはYの代わりに、深度成分を有することもできる。つまり、ゾーンは、二次元または三次元とすることができる。00138本技術の更に他の態様によれば、ある種のゾーンにおいてある種のジェスチャーまたは行為のみを許可することもできる。つまり、キャプチャーデバイスは図13Bにおける全てのゾーンを走査することができるが、例えば、ゾーン532aでは、ユーザーの頭部のジェスチャーおよび動きのみを追跡するのであってもよい。ゾーン532bでは、ユーザーの膝のジェスチャーおよび動きのみを追跡する。そして、ゾーン532cでは、ユーザーの足のジェスチャーおよび動きのみを追跡する。このような実施形態は、例えば、ヨーロッパのフットボールアメリカではサッカーのような、計算環境12上で実行するアプリケーションによっては、有用となり得る。以上のことは一例に過ぎない。あらゆる数のゾーンにおいても、他の身体部分を追跡することができる。00139動作において、仮想物体が動いて実世界ゾーン523a、532b、および532cの1つに対応する機械空間位置に来るときを特定することができる。次いで、動いている物体が中にあるゾーンに基づいて、1組の許されているジェスチャーを引き出すことができる。ジェスチャー認識以下で説明するは通常通りに処理を進めることができるが、限られた数の許されたジェスチャーについてのみとする。所与のゾーンにおいて許すことができるジェスチャーは、計算環境12上において実行するアプリケーションにおいて定義することができ、またそうでなければ、計算環境12またはキャプチャーデバイス20のメモリーに格納することができる。このように定義されていない他の身体部分によって行われるジェスチャーは無視することができ、一方ジェスチャーが受け入れられる身体部分の定義内に含まれる身体部分によって、同じジェスチャーが行われた場合、何らかの関連のある行為に影響を及ぼす。00140この実施形態は、所与のゾーンにおいて行われたジェスチャーがそのゾーンに対して定義されているか否かに応じて、この所与のゾーンにおいてある種の定義されたジェスチャーのみを受け入れると説明した。更に、この実施形態は、FOVをゾーンに分割しない場合でも動作することができる。例えば、システム10は、ジェスチャーが受け入れられるある種の身体部分の定義によって動作することができる。このようなシステムは、認識プロセスを簡略化しジェスチャーの重複を防止する。00141図14は、ジェスチャー認識エンジン190のブロック図を示し、図15は、図14のジェスチャー認識エンジン190の動作のフローチャートを示す。ジェスチャー認識エンジン190は、ステップ550において、姿勢情報540を受け取る。この姿勢情報は、画像データーにおいて検出されたユーザーの身体部分および関節の位置および/または動きに関する種々のパラメーターを含むことができる。00142ジェスチャー認識エンジン190は、ステップ554において、受け取った姿勢情報540を分析し、この姿勢情報が、ジェスチャーライブラリー540に格納されているいずれかの既定の規則542を満たすか否か調べる。格納されている規則542は、姿勢情報540によって示される特定の位置および/または力学的運動を、既定のジェスチャーとして解釈すべきときを記述する。実施形態では、各ジェスチャーは、異なる一意の規則、または1組の規則542を有することができる。各規則は、図12に示した身体部分の1つ以上について、多数のパラメーター関節位置ベクトル、最大/最小位置、位置変化等を有することができる。格納されている規則は、パラメーター毎に、そして図12に示した身体部分526~534b毎に、1つの値、ある範囲の値、最大値、最小値を定義することができ、またはその身体部分についてのパラメーターが、その規則が該当するジェスチャーの判断に関連がないことの指示を定義することができる。規則は、ゲーム著作者によって、ゲーミングプラットフォームのホストによって、またはユーザー自身によって作成することができる。00143ジェスチャー認識エンジン190は、識別したジェスチャー、およびユーザーの位置/動きがそのジェスチャーに対応する尤度に対応する信頼性レベルの双方を出力することができる。具体的には、ジェスチャーについて必要となるパラメーターを定義することに加えて、規則は、更に、姿勢情報540をジェスチャーと解釈する前に要求される閾値信頼性レベルも含むことができる。一部のジェスチャーは、システムコマンドまたはゲーミング命令として、他のジェスチャーよりも強い衝撃を有することもあり、したがって、姿勢をそのジェスチャーと解釈する前に、更に高い信頼性レベルが必要となる。姿勢情報を、規則について格納されているパラメーターと比較することによって、その姿勢情報がジェスチャーを示すか否かについての累計信頼性レベルが得られる。00144一旦所与の姿勢または動きが所与のジェスチャー規則を満たすか否かについて信頼性レベルが決定されたなら、ジェスチャー認識エンジン190は次にステップ556において、この信頼性レベルが、考慮対象の規則に対する所定の閾値よりも高いか否か判定を行う。この閾値信頼性レベルは、考慮対象の規則と関連付けて格納することができる。信頼性レベルが閾値よりも低い場合、ジェスチャーは検出されずステップ560、何の動作も行われない。一方、信頼性レベルが閾値よりも高い場合、ユーザーの動きは、考慮対象のジェスチャー規則を満たすと判断し、ジェスチャー認識エンジン190は、ステップ564において、特定したジェスチャーを戻す。00145以上で明記した実施形態は、特定の関節を追跡する例、および/または特定のゾーンを追跡する例を提供した。このような実施形態は、多種多様のシナリオにおいて用いることができる。図1Aに示した1つのシナリオでは、ユーザー18がユーザーインターフェース21と対話処理している。このような実施形態では、本システムはユーザーの頭部および両手のみを追跡すればよい。計算環境12において実行するアプリケーションは、ある種の関節頭部および手というようなのみからの入力を受け取るように設定され、したがってどの関節またはゾーンを追跡すべきか、肢識別エンジン192に示すことができる。00146他の実施形態では、NUIシステムを有する何らかのユーザーインターフェースを設けることもでき、ユーザーが、どの関節を追跡すべきか、および/またはどのゾーンを追跡すべきか示すことができる。このユーザーインターフェースがあると、ユーザーが永続的な設定、または一時的な設定を行うことを可能にする。例えば、ユーザーが彼または彼女の右腕を怪我しており、ある時間期間動かせない場合、本システムは、その時間期間はその肢を無視するように設定することができる。00147更に他の実施形態では、図1Cに示すように、ユーザーが車椅子に座っている場合や、他の何らかの器官の障害者である場合もある。更に他の例には、彼の身体の左側または右側のみを使用する脳卒中患者がある。一般に、ここでは、ユーザーは彼または彼女の身体のある種の部分に対して使用または制御が制限されているのでもよい。このような場合、本システムは、ユーザーによって、ある種の関節および/またはある種のゾーンのみからの動きを認識し追跡するように設定することができる。これは、ジェスチャーまたはユーザーインターフェースとの他の何らかの手作業による相互作用によって遂行することができる。00148NUIシステムは、多くの場合、ユーザーが猿まねMSMDのような画面上のアバター19の動きおよびアニメーションを制御することを伴う。障害者のユーザーがMSMDモードでアバター19を制御している実施形態では、1つ以上のインアクティブな四肢からの入力データーを無視し、予め保存してあるアニメーションと置き換えることができる。例えば、車椅子のユーザーがアバターを制御して仮想競技場を歩いて横断しているという場面では、アバターの位置的動きを、胴体上部および頭部によって導くことができ、四肢のMSMDマッピングの代わりに、アバターの脚部に合わせて、歩くアニメーションを再生することができる。00149実施形態の中には、NUIシステムとの所与の行為または相互作用を遂行するために、正常に動かない肢の動きが必要となる場合もある。このような実施形態では、本システムは、ユーザーが四肢のマッピングし直しを定義することを可能にする。即ち、本システムは、ユーザーの正常に動く肢の動きがアバター19の意図する肢にマッピングされるように、正常に動く肢を正常に動かない肢と交換することを可能にする。これを遂行するこのような実施形態の1つについて、図16のフローチャートを参照しながら説明する。00150図16において、肢識別エンジン192から戻された腕のデーターを用いて、画面上のアバターの脚部を動画化し制御することができる。通常のMSMD動作では、ユーザーの腕または両腕の動きから、画面上のアバターの腕または両腕の対応する動きが得られる。しかしながら、既定のジェスチャーを定義することもでき、これが行われそして認識されると、脚部制御モードに切り替わり,ユーザーの両腕の動きから、画面上のアバターの脚部の動きが得られる。ステップ562において、ジェスチャー認識エンジン190がこのようなジェスチャーを検出すると、計算環境12は、564において、脚部制御モードで実行することができる。このようなジェスチャーがステップ562において検出されない場合、以下で説明するステップ568から588までによって、通常のMSMD動作を行うことができる。00151いずれのイベントでも、ステップ568において、キャプチャーデバイスおよび/または計算環境は、上半身位置情報を受け取り、ステップ570において、頭部、肩、および腕の位置を肢識別エンジン192によって前述のように計算することができる。ステップ574において、本システムは、脚部制御モードで動作しているか否かチェックする。脚部制御モードで動作している場合、計算環境12は、ユーザーの右腕および/または左腕における腕関節を処理して、ユーザーの左および/または右脚部の脚部関節の3-D実世界位置を求めることができる。00152これは多数の方法で行うことができる。一実施形態では、実空間におけるユーザーの腕の動きを画面上のアバター19の脚部にマッピングすることができ、またそうでなければ、脚部入力データーとして解釈することができる。例えば、既定の数学的関数によって、ある範囲の動きにわたって、肩関節をユーザーの臀部にマッピングすることもできる。既定の数学的関数によって、ある範囲の動きにわたって、ユーザーの肘をユーザーの膝にマッピングすることもできる肘は、膝が下肢を動かすのとは逆方向に下腕を動かすという事実を考慮に入れる。そして、数学的関数によってある範囲の動きにわたって、ユーザーの手首をユーザーの踝にマッピングすることもできる。00153このようなマッピングを行うとき、ユーザーは、例えば、ユーザーの脚部が歩いているまたは走っているという印象を醸し出すような方法で、彼の肩、肘、および手首を一緒に動かすとよい。他の例として、車椅子のユーザーが、彼の腕を動かすことによって、ボールを蹴る行為を真似することもできる。本システムは、総体レベルの動きをアバターの骨格にマッピングし、アニメーションの配合を用いて、それが足の動きであるかのように見えることを可能にすることができる。尚、ユーザーは、以上のステップを用いずに、または代わりのステップによって、正常に動く肢を正常に動かない肢と交換してもよいことは言うまでもない。00154実施形態では、脚部制御モードにある間ユーザーの腕の一方がアバターの脚部の一方を制御しつつ、ユーザーの他方の腕は、アバターの腕の1本を制御しているのでもよい。このような実施形態では、ユーザーによって制御されないアバターの脚部は、単に些細な動きを、制御される脚部に対して行えばよい。つまり、ユーザーが彼の腕を動かし、左足の歩調と一致させると、アバターはこの左足の歩調を、対応する右足の歩調と共に、その通りに真似る。他の実施形態では、脚部制御モードにある間、ユーザーはアバターの両脚部を、実世界における彼の両腕で制御することもできる。尚、他の実施形態では、アバターの脚部を制御するように腕関節の位置を脚部関節に対して処理するためには、種々の他の方法を用いてもよいことは言うまでもない。00155ステップ580において、関節位置ステップ576において脚部制御モードで処理されたまたはされていないを、GPUによるレンダリングのために、計算環境12に供給する。アバターの脚部を制御することに加えて、ユーザーは脚部制御モードにあるときに脚部のジェスチャーと解釈することができる、ある種の腕のジェスチャーも行うことができる。ステップ582において、本システムは、認識された脚部ジェスチャーの有無をチェックする。この脚部のジェスチャーは、実世界におけるユーザーの脚部によって脚部制御モードにないとき行うことができ、またはユーザーの腕によって脚部制御モードにあるとき行うこともできる。このようなジェスチャーがステップ582においてジェスチャー認識エンジンによって認識されると、ステップ584においてそれに応答する動作が行われる。00156ステップ582において特定の脚部のジェスチャーが認識されてもされなくても、本システムは次にステップ586において、脚部制御モードを終了させるように既定された何らかのジェスチャーが行われたか否かチェックする。行われた場合、本システムはステップ588において脚部制御モードから抜け出し、ステップ562に戻って本処理を再度開始する。一方、脚部制御モードを終了させるジェスチャーがステップ586において検出されない場合、ステップ588を飛ばして、本システムはステップ562に戻り以上のステップを繰り返す。00157図17Aは、ターゲット認識、分析、および追跡システムにおいてユーザーの1つ以上の位置および運動を解釈するために用いることができる計算環境の一実施形態例を示す。図1Aから図2に関して先に説明した計算環境12のような計算環境は、ゲーミングコンソールのようなマルチメディアコンソール600とすることができる。図17Aに示すように、マルチメディアコンソール600は、レベル1キャッシュ602、レベル2キャッシュ604、およびフラッシュROMリードオンリーメモリー606を有する中央演算装置CPU601を有する。レベル1キャッシュ602およびレベル2キャッシュ604は、一時的にデーターを格納し、こうしてメモリーアクセスサイクルの回数を減らすことによって、処理速度およびスループットを向上させる。CPU601は、1つよりも多いコアを設けることができ、したがって追加のレベル1およびレベル2キャッシュ602および604を有することもできる。フラッシュROM606は、実行可能コードを格納することができる。実行可能コードは、マルチメディアコンソール600の電源をオンにしたときに、ブートプロセスの初期段階中にロードされる。00158グラフィクス処理ユニットGPU608およびビデオエンコーダー/ビデオコデックコーダー/デコーダー614は、高速および高分解能グラフィクス処理のためにビデオ処理パイプラインを形成する。データーは、バスを介して、GPU608からビデオエンコーダー/ビデオコデック614に伝達される。ビデオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、データーをA/Vオーディオ/ビデオポート140に出力する。メモリーコントローラー610がGPU608に接続されており、限定ではなく、RAMのような種々のタイプのメモリー612にプロセッサーがアクセスし易くなっている。00159マルチメディアコンソール600は、I/Oコントローラー620、システム管理コントローラー622、オーディオ処理ユニット623、ネットワークインターフェースコントローラー624、第1USBホストコントローラー626、第2USBコントローラー628、およびフロントパネルI/Oサブアセンブリ630を含む。これらは、好ましくは、モジュール618上に実装されている。USBコントローラー626および628は、周辺コントローラー6421~6422、ワイヤレスアダプター648、および外部メモリーデバイス646例えば、フラッシュメモリー、外部CD/DVDROMドライブ、リムーバブル媒体等のためのホストとしての役割を果たす。ネットワークインターフェース624および/またはワイヤレスアダプター648は、ネットワーク例えば、インターネット、ホームネットワーク等へのアクセスを与え、イーサネット登録商標カード、モデム、Bluetooth登録商標モジュール、ケーブルモデム等を含む広範囲にわたる種々の有線またはワイヤレスアダプターコンポーネントの内いずれでもよい。00160システムメモリー643は、ブートプロセスの間にロードされるアプリケーションデーターを格納するために設けられている。メディアドライブ644が設けられており、DVD/CDドライブ、ハードドライブ、またはその他のリムーバブルメディアドライブを備えることができる。メディアドライブ644は、マルチメディアコンソール600の内部にあっても外部にあってもよい。アプリケーションデーターには、マルチメディアコンソール600が実行、再生等のために、メディアドライブ644を通じて、アクセスすることができる。メディアドライブ644は、シリアルATAバスまたはその他の高速接続例えば、IEEE1394のようなバスを介して、I/Oコントローラー620に接続されている。00161システム管理コントローラー622は、メディアコンソール600が利用可能であることを確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット623およびオーディオコデック632は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオデーターは、通信リンクを介して、オーディオ処理ユニット623とオーディオコデック632との間で搬送される。オーディオ処理パイプラインは、外部オーディオプレーヤーまたはオーディオ処理能力を有するデバイスによる再生のために、データーをA/Vポート640に出力する。00162フロントパネルI/Oサブアセンブリ630は、電力ボタン650およびイジェクトボタン652の機能をサポートするだけでなく、あらゆるLED発光ダイオードまたはマルチメディアコンソール600の外面上に露出されるその他のインディケーターもサポートする。システム電源モジュール636は、マルチメディアコンソール600のコンポーネントに電力を供給する。ファン638は、マルチメディアコンソール600内部にある回路を冷却する。00163CPU601、GPU608、メモリーコントローラー610、およびマルチメディアコンソール600内部にある種々のその他のコンポーネントは、1系統以上のバスを介して相互接続されている。これらのバスには、シリアルおよびパラレルバス、メモリーバス、周辺バス、ならびに種々のバスアーキテクチャの内いずれかを用いるプロセッサーバスまたはローカルバスが含まれる。一例として、このようなアーキテクチャーは、ペリフェラルコンポーネント相互接続PCIバス、PCIExpressバス等を含むことができる。00164マルチメディアコンソール600の電源をオンにすると、システムメモリー643からメモリー612および/またはキャッシュ602、604にアプリケーションデーターがロードされ、CPU601において実行することができる。アプリケーションは、グラフィカルユーザーインターフェースを提示することができる。このグラフィカルユーザーインターフェースは、マルチメディアコンソール600において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび/またはメディアドライブ644内に収容されている他のメディアをメディアドライブ644から起動または再生して、マルチメディアコンソール600に追加の機能を設けることもできる。00165マルチメディアコンソール600は、単にシステムをテレビジョンまたはその他のディスプレイに接続することによって、単体システムとして動作させることができる。この単体モードでは、マルチメディアコンソール600は、1人以上のユーザーがシステムと対話処理を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワークインターフェース624またはワイヤレスアダプター648によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディアコンソール600を更に大きなネットワークコミュニティにおける関与個体として動作させることもできる。00166マルチメディアコンソール600の電源をオンにすると、マルチメディアコンソールのオペレーティングシステムによって、設定されている量のハードウェアリソースがシステムの使用のために確保される。これらのリソースは、メモリー例えば、16MB、CPUおよびGPUサイクル例えば、5、ネットワーク接続帯域幅例えば、8kbs等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。00167特に、メモリーの確保は、起動カーネル、コンカレントシステムアプリケーション、およびドライバーを収容できる程に十分大きいことが好ましい。確保されたCPU使用枠がシステムアプリケーションによって用いられない場合、アイドルのスレッドがいずれかの未使用サイクルを消費するように、CPUの確保は一定であることが好ましい。00168GPUの確保に関して、GPU割り込みを用いてポップアップをオーバーレイにレンダリングするコードをスケジューリングすることによって、システムアプリケーション例えば、ポップアップが生成する軽量メッセージを表示する。オーバーレイに用いられるメモリー量は、オーバーレイのエリアサイズによって異なり、オーバーレイは画面の解像度に合わせて拡縮小することが好ましい。コンカレントシステムアプリケーションによってフルユーザーインターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更しTVの同期を取り直す必要性をなくすように、この解像度を設定するためにスケーラーを用いるとよい。00169マルチメディアコンソール600がブートして、システムリソースが確保された後、コンカレントシステムアプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステムリソースの内部で実行する1組のシステムアプリケーションの中にカプセル化されている。オペレーティングシステムカーネルは、システムアプリケーションスレッドと、ゲーミングアプリケーションスレッドとの間でスレッドを識別する。一貫したシステムリソースビューをアプリケーションに提供するために、システムアプリケーションは、所定の時点および間隔でCPU601において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソール上で実行しているゲーミングアプリケーションに対するキャッシュ破壊を最少に抑えるためにある。00170コンカレントシステムアプリケーションがオーディオを必要とする場合、時間に敏感であるため、ゲーミングアプリケーションには非同期にオーディオ処理をスケジューリングする。マルチメディアコンソールアプリケーションマネージャー以下で説明するは、システムアプリケーションがアクティブのとき、ゲーミングアプリケーションのオーディオレベル例えば、無音化、減衰を制御する。00171入力デバイス例えば、コントローラー6421および6422は、ゲーミングアプリケーションおよびシステムアプリケーションによって共有される。入力デバイスは、確保されるリソースではないが、各々がデバイスのフォーカスを有するように、システムアプリケーションとゲーミングアプリケーションとの間で切り換えられる。アプリケーションマネージャーは、ゲーミングアプリケーションの知識を用いずに入力ストリームの切換を制御し、ドライバーはフォーカススイッチに関する状態情報を維持する。カメラ26、28およびキャプチャーシステム20は、コンソール600の追加の入力デバイスを定めることができる。00172図17Bは、ターゲット認識、分析、および追跡システムにおいて1つ以上の位置および動きを解釈するために用いられる、計算環境720の他の実施形態例を示す。計算環境720は、図1Aから図2に示した計算環境12であってもよい。計算システム環境720は、適した計算環境の一例に過ぎず、本明細書において開示される主題の使用範囲または機能に関して、いかなる限定を示唆する意図もない。また、計算環境720が、本明細書において例示されるいずれの1つのコンポーネントまたはコンポーネントの組み合わせに関して何らかの依存性または要件を有するように解釈してはならない。実施形態によっては、図示する種々の計算エレメントが、本開示の特定の態様をインスタンス化するように構成されている回路を含むこともあり得る。例えば、本開示において用いられる回路という用語は、ファームウェアまたはスイッチによって機能1つまたは複数を実行するように構成されている特殊ハードウェアコンポーネントを含むことができる。別の実施形態例では、回路という用語は、機能1つまたは複数を実行するために動作可能なロジックを具体化するソフトウェア命令によって構成される汎用演算装置、メモリー等を含むことができる。回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態例では、実装者は、ロジックを具体化するソースコードを書くことができ、ソースコードを機械読み取り可能コードにコンパイルすることができ、この機械読み取り可能コードを汎用演算装置によって処理することができる。技術的現状では、ハードウェア、ソフトウェア、またはハードウェア/ソフトウェアの組み合わせの間には殆ど差がないというところまで発展していることを当業者は認めることができるので、特定の機能を実行するためにハードウェアまたはソフトウェアのどちらを選択するかということは、実装者に委ねられた設計選択事項である。更に具体的には、ソフトウェアプロセスを等価のハードウェア構造に変換することができ、更にハードウェア構造自体を等価のソフトウェアプロセスに変換することができることを、当業者は認めることができる。つまり、ハードウェアの実施態様およびソフトウェアの実施態様のどちらを選択するかということは、実装者に委ねられた設計選択事項の1つである。00173図17Bにおいて、計算環境720は、コンピューター741を含む。コンピューター741は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター741がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システムメモリー722は、リードオンリーメモリーROM723およびランダムアクセスメモリーRAM760のような揮発性および/または不揮発性メモリーの形態で、コンピューター記憶媒体を含む。基本入出力システム724BIOSは、起動中のように、コンピューター741内のエレメント間におけるデーター転送を補助する基本的なルーチンを含み、通例ROM723内に格納されている。RAM760は、通例、演算装置759が直ちにアクセス可能であるデーターおよび/またはプログラムモジュール、または現在これによって処理されているデーターおよび/またはプログラムモジュールを収容する。一例として、そして限定ではなく、図17Bは、オペレーティングシステム725、アプリケーションプログラム726、その他のプログラムモジュール727、およびプログラムデーター728を示す。更に、図17Bは、グラフィクスプロセッサーユニットGPU729も含む。グラフィクスプロセッサーユニット729は、高速および高解像度グラフィクス処理および格納のために、付随するビデオメモリー730を有する。GPU729は、グラフィクスインターフェース731を介して、システムバス721に接続することができる。00174また、コンピューター741は、その他のリムーバブル/非リムーバブル揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例にすぎないが、図17Bは、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハードディスクドライブ738、リムーバブル不揮発性磁気ディスク754からの読み取りおよびこれへの書き込みを行なう磁気ディスクドライブ739、ならびにCDROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク753からの読み取りおよびこれへの書き込みを行なう光ディスクドライブ740を示す。動作環境の一例において使用可能なその他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、限定する訳ではないが、磁気テープカセット、フラッシュメモリーカード、ディジタルバーサタイルディスク、ディジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等が含まれる。ハードディスクドライブ738は、通例、インターフェース734のような非リムーバブルメモリーインターフェースを介してシステムバス721に接続され、磁気ディスクドライブ739および光ディスクドライブ740は、通例、インターフェース735のようなリムーバブルメモリーインターフェースによって、システムバス721に接続する。00175先に論じ図17Bに示すドライブおよびそれらと関連のあるコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラムモジュール、およびコンピューター741のその他のデーターを格納する。図17Bでは、例えば、ハードディスクドライブ738は、オペレーティングシステム758、アプリケーションプログラム757、他のプログラムモジュール756、およびプログラムデーター755を格納するように示されている。尚、これらの構成要素は、オペレーティングシステム725、アプリケーションプログラム726、他のプログラムモジュール727、およびプログラムデーター728と同じでも異なっていても可能であることを注記しておく。オペレーティングシステム758、アプリケーションプログラム757、他のプログラムモジュール756、およびプログラムデーター755は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザーは、キーボード751、および一般にマウス、トラックボールまたはタッチパッドと呼ばれているポインティングデバイス752のような入力デバイスによって、コマンドおよび情報をコンピューター741に入力することができる。他の入力デバイス図示せずには、マイクロフォン、ジョイスティック、ゲームパッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース736を介して、演算装置759に接続されている。ユーザー入力インターフェース736は、システムバスに結合されているが、パラレルポート、ゲームポート、またはユニバーサルシリアルバスUSBによって接続することも可能である。カメラ26、28およびキャプチャーデバイス20は、コンソール700の追加入力デバイスを定めることができる。モニター742またはその他のタイプの表示装置も、ビデオインターフェース732のようなインターフェースを介して、システムバス721に接続されている。モニターに加えて、コンピューターは、スピーカー744およびプリンター743のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース733を通じて接続することができる。00176コンピューター741は、リモートコンピューター746のような1つ以上のリモートコンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモートコンピューター746は、パーソナルコンピューター、サーバー、ルータ、ネットワークPC、ピアデバイス、またはその他の共通ネットワークノードとすることができ、通例、コンピューター741に関して先に説明したエレメントの多くまたは全てを含むが、図17Bにはメモリー記憶装置747のみを示す。図17Bに示す論理接続は、ローカルエリアネットワークLAN745およびワイドエリアネットワークWAN749を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューターネットワーク、イントラネットおよびインターネットにおいては一般的である。00177LANネットワーク環境で用いる場合、コンピューター741は、ネットワークインターフェースまたはアダプター737を介してLAN745に接続する。WANネットワーク環境で用いる場合、コンピューター741は、通例、モデム750、またはインターネットのようなWAN749を通じて通信を設定するその他の手段を含む。モデム750は、内蔵でも外付けでもよく、ユーザー入力インターフェース736またはその他の適切な機構を介してシステムバス721に接続することができる。ネットワーク環境では、コンピューター741に関係付けて図示したプログラムモジュール、またはその一部は、リモートメモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図17Bは、リモートアプリケーションプログラム748がメモリーデバイス747に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを設定する他の手段も使用可能であることは認められよう。00178実施形態では、本技術は、キャプチャーデバイスによって取り込まれた画像データーから、視野の中にいるユーザーを識別するシステムに関し、このシステムは、ステートレスな身体部分提案システムで構成されている。00179実施形態では、ステートレス身体部分提案システムは、身体部分提案および/または骨格仮説を生成する。00180実施形態では、ステートレス身体部分提案システムは、頭部三角形についての身体部分提案、手の提案、および/または腕の仮説を生成する。00181実施形態では、ステートレス身体部分提案システムは、原型および重心によって動作することができる。00182実施形態では、本技術は、キャプチャーデバイスによって取り込まれた画像データーから、視野の中にいるユーザーを識別するシステムに関し、このシステムはステートフル身体部分提案システムで構成されている。00183実施形態では、ステートレス身体部分提案システムは、マグネティズムによって動作することができる。00184実施形態では、ステートレス身体部分提案システムは、マグネティズムを用いて、身体部分提案および/または骨格仮説を生成する。00185実施形態では、ステートレス身体部分提案システムは、マグネティズムを用いて、頭部三角形についての身体部分提案、手の提案、および/または腕の仮説を生成する。00186実施形態では、本技術は、キャプチャーデバイスによって取り込まれた画像データーから、視野の中にいるユーザーを識別するシステムに関し、このシステムは、身体部分提案システムと、この身体部分提案システムによって生成された提案の折り合いをつける骨格解明システムとで構成されている。00187実施形態では、骨格解明システムは、1つ以上のコスト関数、またはロバストな採点検査を採用する。身体部分提案システムによって生成された提案の折り合いをつけて候補を求める。00188実施形態では、骨格解明システムは、多数の身体部分提案および/または骨格仮説を用いる。00189実施形態では、骨格解明システムは、トレースおよび/または突出サンプルを用いて、身体部分提案システムによって生成された候補提案、および/または候補提案の組み合わせを評価し折り合いをつける。00190実施形態では、トレースサンプルは、候補身体部分および/または骨格仮説が正しい場合、1つ以上の候補身体部分および/または骨格仮説の中にあるサンプルに対して検出された深度値が、期待通りであるか否か検査する。00191実施形態では、突出サンプルは、候補身体部分および/または骨格仮説が正しい場合、1つ以上の候補身体部分および/または骨格仮説の輪郭の外側にあるサンプルについて検出された深度値が、期待通りであるか否か検査する。00192実施形態では、トレースおよび/または突出サンプルは、身体部分のいずれかおよび全てに関する仮説、または骨格仮説全体に関する仮説も格納するために用いることができる。00193実施形態では、骨格解明システムは、身体部分が動いているか否か判断するための検査を用いる。00194実施形態では、手が動いているか否か判断するための検査は、身体部分の動きに対応するx、y、および/またはz方向における画素の動きを検出する。00195実施形態では、画素動き検査は、手の提案の動きを検出する。00196実施形態では、画素動き検査は、頭部、両腕、脚部、および両足の動きを検出する。00197実施形態では、画素の動きが主要な身体部分手または頭部というような身体部分の近くで検出されるまで、骨格は確認されない。00198実施形態では、主要な身体部分が経時的にやや滑らかな経路に従うことが観察されるまで、骨格は確認されない。00199実施形態では、骨格解明システムは、所与の骨格仮説が力学的に有効か否か判断する。00200実施形態では、骨格解明システムは、骨格仮説における1つ以上の関節が、予期される身体部分に対する関節回転限界を超えて回転したか否か判断する。00201実施形態では、本システムは、更に、手を厳格に求める技法も含み、骨格解明システムと共に、非常にロバストで、厳格に求められた手の位置を生成する。00202先の実施形態では、骨格解明システムは、最初に、頭部および肩関節に基づいて、プレーヤーを識別し、続いて両手および両肘の位置を特定する。他の実施形態では、骨格解明システムは、最初に、身体の関節のいずれかの部分集合においてプレーヤーを特定し、続いて他の身体の関節の位置を特定することもできる。00203更に、骨格解明システムによる身体部分の特定順序は、これまでに説明したものとは異なっていてもよい。例えば、胴体、臀部、手、または脚部というような、いずれかの身体部分を最初に解明し、以前のフレームからのプレーヤーに結び付けることもでき、その後、腕について先に説明した技法を用いて、しかし他の身体部分に適用して、骨格の残りを解明することもできる。00204更に、骨格解明システムによる身体部分の特定順序は、動的であってもよい。言い換えると、最初に解明すべき身体部分のグループは、動的な条件によって異なってもよい。例えば、プレーヤーが横を向いて立っており、左腕がその身体の内最も明確に見える部分であるとすると、骨格解明システムは、その腕を用いて頭部三角形の代わりにプレーヤーを識別し、続いて骨格の他の部分および/または骨格全体を解明するのでもよい。00205実施形態では、本システムは、更に、手の先端の位置、およびその手の角度の双方を精度高く判断する方法を含む。00206以上の本発明のシステムについての詳細な説明は、例示および説明の目的で提示された。これは、網羅的であることも、開示された技術を開示された形態そのものに限定することを意図するのではない。多くの変更や変形が、以上の教示に照らして、可能である。記載した実施形態は、本技術の原理およびその実用的な用途を最良に説明し、それによって当業者が本技術を種々の実施形態において、そして個々の考えられる使用に適するような種々の変更と共に、最良に利用することを可能にするために選択されたのである。本発明のシステムの範囲は、本明細書に添付されている特許請求の範囲によって定義されることを意図している。"