説明

モーションキャプチャにモデルトラッキングを適用するための方法及びシステム

シーンの立体画像などの画像が、装置によって受信され得、観察され得、又はキャプチャされ得、ユーザーのモデルが画像内に生成され得る。その後、モデルは、ユーザーによる1つ以上の動作を模倣するように調整され得る。例えば、モデルは、物理空間におけるユーザーの動作に相当するポーズに調整され得る関節と骨を有する骨格モデルであり得る。ユーザーの動作に関するモーションキャプチャファイルが、調整されたモデルに基づいて、リアルタイムに生成され得る。例えば、調整されたモデルのポーズそれぞれに関する関節と骨を定義しているベクトル集合が、キャプチャされ得、モーションキャプチャファイルにレンダリングされ得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピューターゲーム、マルチメディアアプリケーションに関し、具体的にはモーションキャプチャ技法に関する。
【背景技術】
【0002】
[0001]コンピューターゲーム、マルチメディアアプリケーションなどのような多くのコンピューティングアプリケーションは、典型的なモーションキャプチャ技法を使用して動画(アニメ)化されるアバター又は登場人物を含んでいる。例えばゴルフゲームの開発時、プロゴルファーが、例えばスタジオ内の特定の場所に向けられた複数のカメラを含むモーションキャプチャ機器を有するスタジオへ連れて来られる。その後、プロゴルファーは、カメラを用いて構成されてトラッキングされ得る複数の点指標を有するモーションキャプチャスーツを着せられ得、カメラが、例えばプロゴルファーのゴルフ動作をキャプチャし得る。その後、動作が、ゴルフゲームの開発中にアバター又は登場人物に適用され得る。その後、ゴルフゲームが完成すると、アバター又は登場人物が、ゴルフゲーム実行中、プロゴルファーの動作を用いて動画化され得る。残念ながら典型的モーションキャプチャ技法は高価であって、特定のアプリケーション開発と結合され、アプリケーションの実際のプレーヤー又はユーザーに関連付けられた動作を含んでいない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、ゲームユーザーによる動作を模倣するように調整可能なユーザーのモデルを生成するモーションキャプチャ技法及びシステムを提供することである。
【課題を解決するための手段】
【0004】
[0002]本明細書に開示されるものは、シーンにおけるユーザーの動作をキャプチャするためのシステム及び方法である。例えば、シーンの奥行きなどの画像が、受信又は観察され得る。その後、立体画像が解析され得、画像がユーザーに関連付けられるヒューマンターゲットを含んでいるか否か決定する。画像がユーザーに関連付けられるヒューマンターゲットを含んでいる場合、ユーザーのモデルが生成され得る。その後、モデルが、ユーザーの動作に応答しトラッキングされ得、モデルがユーザーの動作を模倣するように調整され得る。例えば、モデルは、物理空間におけるユーザーの動作に相当するポーズに調整され得る関節と骨を有する骨格モデルであり得る。実施形態例によるユーザーの動作に関するモーションキャプチャファイルが、その後、トラッキングされたモデルに基づいてリアルタイムに生成され得る。例えば、調整されたモデルのポーズそれぞれに関する関節と骨を定義したベクトル集合が、キャプチャされ、モーションキャプチャファイルにレンダリングされ得る。
【0005】
[0003]この「課題を解決するための手段」は更に、「発明を実施するための形態」に後述される概念のいくつかを簡易化した形式で紹介するために提供される。この「課題を解決するための手段」は、請求対象項目の重要な機能も本質的な特徴も特定するように意図されておらず、請求対象項目の範囲を限定するために利用されることも意図されていない。更に、請求対象項目は、この開示の任意の一部に記述した不都合点のいくつか又はすべてを解決する実装に限定されない。
【図面の簡単な説明】
【0006】
【図1A】[0004]ゲームをプレーしているユーザーと目標認識、解析、及びトラッキングシステムの実施形態例を示している。
【図1B】[0004]ゲームをプレーしているユーザーと目標認識、解析、及びトラッキングシステムの実施形態例を示している。
【図2】[0005]図2は、目標認識、解析、及びトラッキングシステムにおいて使用され得るキャプチャ装置の実施形態例を示している。
【図3】[0006]図3は、目標認識、解析、及びトラッキングシステムにおいて1つ以上のジェスチャを解釈し、及び/又は目標認識、解析、及びトラッキングシステムによって表示されるアバター又は画面上の登場人物を動画化するために使用され得る計算環境の実施形態例を示している。
【図4】[0007]図4は、目標認識、解析、及びトラッキングシステムにおいて1つ以上のジェスチャを解釈し、及び/又は目標認識、解析、及びトラッキングシステムによって表示されるアバター又は画面上の登場人物を動画化するために使用され得る別の計算環境の実施形態例を示している。
【図5】[0008]図5は、ヒューマンターゲットの動作をキャプチャするための方法例の流れ図を表している。
【図6】[0009]図6は、ヒューマンターゲットを含み得る画像の実施形態例を示している。
【図7】[0010]図7は、ヒューマンターゲットに関し生成され得るモデルの実施形態例を示している。
【図8A】[0011]時間内の様々な時点においてキャプチャされ得るモデルの実施形態例を示している。
【図8B】[0011]時間内の様々な時点においてキャプチャされ得るモデルの実施形態例を示している。
【図8C】[0011]時間内の様々な時点においてキャプチャされ得るモデルの実施形態例を示している。
【図9A】[0012]時間内の様々な時点においてキャプチャされ得るモデルに基づいて動画化され得るアバター又はゲーム上の登場人物の実施形態例を示している。
【図9B】[0012]時間内の様々な時点においてキャプチャされ得るモデルに基づいて動画化され得るアバター又はゲーム上の登場人物の実施形態例を示している。
【図9C】[0012]時間内の様々な時点においてキャプチャされ得るモデルに基づいて動画化され得るアバター又はゲーム上の登場人物の実施形態例を示している。
【発明を実施するための形態】
【0007】
[0013]本明細書に記述されるユーザーは、1つ以上のジェスチャ及び/又は動作を実行することによって、ゲーム機、計算機などのような計算環境上で実行するアプリケーションを制御し得、及び/又はアバター又は画面上の登場人物を動画化し得る。一実施形態によるジェスチャ及び/又は動作が、例えばキャプチャ装置によって受信され得る。例えば、キャプチャ装置がシーンの立体画像をキャプチャし得る。一実施形態において、キャプチャ装置は、シーンにおける目標又は被写体の1つ以上が、ユーザーのようなヒューマンターゲットに相当するか否か決定し得る。その後、ヒューマンターゲット相当に一致する目標又は被写体それぞれが、スキャンされ得、それに関連付けられた骨格モデル、ヒューマンメッシュモデルなどのようなモデルを生成し得る。その後、モデルが計算環境に提供され得、計算環境がモデルをトラッキングし、トラッキングされたモデルに関するモーションキャプチャファイルを生成し、モデルと関連付けられたアバターをレンダリングし、トラッキングされたモデルに関するモーションキャプチャファイルに基づいてアバターを動画化し、及び/又はトラッキングされたモデルに基づいて例えば、計算機環境上で実行しているアプリケーションにおいて実行するコントローラーを決定する。
【0008】
[0014]図1A及び図1Bは、ボクシングゲームをプレーしているユーザー(18)と目標認識、解析、及びトラッキングシステム(10)構成の実施形態例を示している。実施形態例において、目標認識、解析、及びトラッキングシステム(10)が、ユーザー(18)のようなヒューマンターゲットを認識し、解析し、及び/又はトラッキングするために使用され得る。
【0009】
[0015]図1Aのように目標認識、解析、及びトラッキングシステム(10)は、計算環境(12)を含み得る。計算環境(12)は、計算機、ゲームシステム、又はゲーム機などであり得る。実施形態例による計算環境(12)は、ハードウェアコンポーネント及び/又はソフトウェアコンポーネントを含み得、計算環境(12)が、ゲームアプリケーション、非ゲームアプリケーションなどのようなアプリケーションを実行するために使用され得る。一実施形態において、計算環境(12)は、標準プロセッサー、専用プロセッサー、マイクロプロセッサーなどのようなプロセッサーを含み得、例えば、画像を受信し、キャプチャされたユーザーのモデルを画像内に生成し、モデルをトラッキングし、トラッキングされたモデルに基づいてモーションキャプチャファイルを生成し、モーションキャプチャファイルを適用する、ことに関する命令又はより詳細に後述される適切な別の任意の命令を含む命令を実行し得る。
【0010】
[0016]図1Aのように目標認識、解析、及びトラッキングシステム(10)は更に、キャプチャ装置(20)を含み得る。キャプチャ装置(20)は、例えば、ユーザー(18)のような1人以上のユーザーを視覚的に監視するために使用され得るカメラであり得、1人以上のユーザーによって実行されるジェスチャ及び/又は動作が、キャプチャされ得、解析され得、トラッキングされ得、アプリケーション内において1つ以上のコントロール又は動作を実行し得、及び/又はより詳細に後述されるようにアバター又は画面上の登場人物を動画化し得る。
【0011】
[0017]一実施形態による目標認識、解析、及びトラッキングシステム(10)は、テレビ、モニター、ハイビジョンテレビ(HDTV)などのような視聴覚装置(16)と接続され得、ゲーム、又は映像アプリケーション及び/又は音声アプリケーションをユーザー(18)のようなユーザーに提供し得る。例えば、計算環境(12)は、グラフィックカードなどのビデオアダプター及び/又はサウンドカードなどの音声アダプターを含み得、ゲームアプリケーション、非ゲームアプリケーションなどに関連する視聴覚信号を提供し得る。視聴覚装置(16)は、計算環境(12)から視聴覚信号を受信し得、その後、視聴覚信号と関連付けられたゲーム、又は映像アプリケーション及び/又は音声アプリケーションをユーザー(18)へ出力し得る。一実施形態による視聴覚装置(16)は、例えば、S−Videoケーブル、同軸ケーブル、HDMIケーブル、DVIケーブル、VGAケーブルなどを介し計算環境(12)と接続され得る。
【0012】
[0018]図1A及び図1Bのような目標認識、解析、及びトラッキングシステム(10)が、ユーザー(18)のようなヒューマンターゲットを認識し、解析し、及び/又はトラッキングするために使用され得る。例えば、ユーザー(18)が、キャプチャ装置(20)を使用しトラッキングされ得、ユーザー(18)のジェスチャ及び/又は動作が、キャプチャされ得、スクリーン上のアバター又は登場人物を動画化し、及び/又は計算機環境(12)によって実行されるアプリケーションに作用するために使用され得るコントロールとして解釈され得る。かくして一実施形態によるユーザー(18)は、彼又は彼女の体を動かし、アプリケーションを制御し、及び/又はアバター又は画面上の登場人物を動画化し得る。
【0013】
[0019]図1A及び図1Bのような実施形態例において、計算環境(12)上で実行しているアプリケーションは、ユーザー(18)がプレー中のボクシングゲームであり得る。例えば、計算環境(12)は、ボクシングの対戦相手(38)の視覚的表示をユーザー(18)に提供するための視聴覚装置(16)を使用し得る。計算環境(12)は、ユーザー(18)が彼又は彼女の動作を使って制御し得るプレーヤーのアバター(40)の視覚表示を提供するためにも視聴覚装置(16)を使用し得る。例えば、図1Bのようにユーザー(18)は、物理空間にパンチを食らわし、プレーヤーのアバター(40)が、ゲーム空間にパンチを食らわすことをもたらし得る。かくして、実施形態例による計算機環境(12)及び目標認識、解析、及びトラッキングシステム(10)のキャプチャ装置(20)が、物理空間においてユーザー(18)のパンチを認識し、解析するために使用され得、パンチが、ゲーム空間においてプレーヤーのアバター(40)のゲームコントロールとして解釈され得、及び/又はパンチの動作が、ゲーム空間においてプレーヤーのアバター(40)を動画化するために使用され得る。
【0014】
[0020]素速く上下する、曲がって進む、足を引きずって歩く、妨害する、ジャブで突く、又は異なる様々なパンチ力で食らわすためのコントロールのようなユーザー(18)による別の動作も別のコントロール又は動作として解釈され得、及び/又はプレーヤーのアバターを動画化するために使用され得る。更に、動作の中には、プレーヤーのアバター(40)の制御以外の動作に相当し得るコントロールとして解釈され得るものもある。例えば、ゲームの終了、停止、セーブ、レベルの選択、高得点の閲覧、又は友人との通信など実行するための動作をプレーヤーは使用し得る。加えると、ユーザー(18)の動作の範囲すべてが利用可能であって、使用され、アプリケーションと対話するために適切な任意の方法で解析され得る。
【0015】
[0021]実施形態例において、ユーザー(18)のようなヒューマンターゲットは、物体を有し得る。上記の実施形態において、コンピューターゲームのユーザーは物体を手に持つ場合があって、プレーヤーの動作と物体とが、ゲームのパラメーターを調整し及び/又は制御するために使用され得る。例えば、ラケットを手に持つプレーヤーの動作が、コンピュータースポーツゲームにおいて、スクリーン上のラケットを制御するためにトラッキングされ、利用され得る。別の実施形態例において、物体を手に持つプレーヤーの動作が、コンピューターの戦闘ゲームにおいて、スクリーン上の兵器を制御するためにトラッキングされ得、利用され得る。
【0016】
[0022]別の実施形態例による目標認識、解析、及びトラッキングするシステム(10)が更に、オペレーティングシステム及び/又はゲーム分野以外のアプリケーションの制御装置として目標の動作を解釈するために利用され得る。例えば、実際に制御可能な任意のオペレーティングシステム及び/又はアプリケーションの態様が、ユーザー(18)のような目標の動作によって制御され得る。
【0017】
[0023]図2は、目標認識、解析、及びトラッキングシステム(10)に使用され得るキャプチャ装置(20)の実施形態例を示している。実施形態例によるキャプチャ装置(20)は、例えば、飛行時間技法、構造光技法、立体画像技法などを含む適切な任意の技法を介し、深度値を含み得る立体画像を含む立体情報を有する映像をキャプチャするように構成され得る。一実施形態によるキャプチャ装置(20)は、立体情報を「Zレイヤ」又はその照準線に沿って立体視カメラから延長したZ軸に垂直であり得るレイヤへ組織化し得る。
【0018】
[0024]図2のようにキャプチャ装置(20)は画像カメラコンポーネント(22)を含み得る。実施形態例による画像カメラコンポーネント(22)は、シーンの立体画像をキャプチャする立体視カメラであり得る。立体画像は、キャプチャされたシーンの二次元(2−D)画素領域を含み得、2−D画素領域の画素それぞれが、カメラからキャプチャされたシーンの例えば、センチメートル、ミリメートルで被写体の長さ又は距離などのような深度値を示し得る。
【0019】
[0025]図2のように実施形態例による画像カメラコンポーネント(22)は、シーンの立体画像をキャプチャするために使用され得る赤外線光コンポーネント(24)、立体(3−D)カメラ(26)、及びRGBカメラ(28)を含み得る。例えば、飛行時間解析においてキャプチャ装置(20)の赤外線光コンポーネント(24)は、赤外光をシーンに放射し得、その後、(示されていない)センサーを使用し、例えば、立体視カメラ(26)及び/又はRGBカメラ(28)を使用し、シーンにおける目標及び被写体の1つ以上の表面から後方散乱光を検出する。実施形態の中には、赤外線パルス光が使用され得るものもあって、出射パルス光と応答着信パルス光との間の時間が測定され得、キャプチャ装置(20)からシーンにおける目標又は被写体上の特定の位置までの物理的距離を決定するために使用され得る。加えると、別の実施形態例の中には出射パルス光波の位相が、位相変動を決定する着信光波の位相と比較され得るものもある。その後、位相変動が、キャプチャ装置から目標又は被写体上の特定の位置までの物理的距離を決定するために使用され得る。
【0020】
[0026]別の実施形態例による飛行解析時間が使用され得、例えば、シャッターパルス光画像化を含む様々な技法を介し、長い時間をかけて反射される光線強度を解析することによってキャプチャ装置(20)から目標又は被写体上の特定位置までの物理的距離を間接的に決定し得る。
【0021】
[0027]
別の実施形態例において、キャプチャ装置(20)は、立体情報をキャプチャするために構造光を使用し得る。そのような解析において、パターン光(すなわち、周知のグリッドパターン又は縞模様のようなパターンとして表示される光)が、例えば、赤外線光コンポーネント(24)を介しシーン上に映し出され得る。シーンにおいて目標又は被写体1つ以上の表面を叩くと、それに応じてパターンが変形する。そのようなパターンの変形が、例えば、立体視カメラ(26)及び/又はRGBカメラ(28)によってキャプチャされ得、その後、キャプチャ装置から目標又は被写体上の特定位置までの物理的距離を決定するために解析され得る。
【0022】
[0028]別の実施形態によるキャプチャ装置(20)は、分解され得る視覚的立体データを取得し立体情報を生成するために、異なる角度からシーンを眺め得る物理的に別個の2つ以上のカメラを含み得る。
【0023】
[0029]キャプチャ装置(20)は更に、マイクロフォン(30)を含み得る。マイクロフォン(30)は、音声を受信し電気的信号に変換し得る変換器又はセンサーを含み得る。一実施形態によるマイクロフォン(30)は、目標認識、解析、及びトラッキングシステム(10)のキャプチャ装置(20)と計算環境(12)との間のフィードバックを減少させるために使用され得る。加えると、マイクロフォン(30)は、計算環境(12)によって実行されるゲームアプリケーション、非ゲームのアプリケーションなどのようなアプリケーションを制御するためのユーザーによって提供され得る音声信号を受信するためにも使用され得る。
【0024】
[0030]実施形態例において、キャプチャ装置(20)は更に、画像カメラコンポーネント(22)と作用し通信し得るプロセッサー(32)を含み得る。プロセッサー(32)は、標準プロセッサー、専用プロセッサー、マイクロプロセッサーなどを含み得、例えば、画像を受信、キャプチャされたユーザーのモデルを画像内に生成、モデルをトラッキング、トラッキングされたモデルに基づいてモーションキャプチャファイルを生成、モーションキャプチャファイルに適用、するための命令又はより詳細に後述される別の適切な任意の命令を含む命令を実行し得る。
【0025】
[0031]キャプチャ装置(20)は更に、メモリーコンポーネント(34)を含み得、プロセッサー(32)によって実行される命令、3−Dカメラ若しくはRGBカメラによってキャプチャされる画像、又は画像フレーム、又は別の適切な任意の情報、画像などをストアし得る。実施形態例によるメモリーコンポーネント(34)は、ランダムアクセスメモリー(RAM)、読み出し専用メモリー(ROM)、キャッシュメモリー、フラッシュメモリー、ハードディスク、又は別の適切な任意のストレージコンポーネントを含み得る。図2のように一実施形態において、メモリーコンポーネント(34)は、画像キャプチャコンポーネント(22)及びプロセッサー(32)と通信する別個のコンポーネントであり得る。別の実施形態によるメモリーコンポーネント(34)は、プロセッサー(32)及び/又は画像キャプチャコンポーネント(22)に統合され得る。
【0026】
[0032]図2のようにキャプチャ装置(20)は、通信リンク(36)を介し計算環境(12)と通信し得る。通信リンク(36)は、例えば、USB接続、ファイヤーワイヤー接続、イーサネットケーブル接続などを含む有線接続、及び/又は無線802.11b, 11g, 11a, 又は11n接続などの無線接続であり得る。一実施形態による計算環境(12)が、例えば、通信リンク(36)を介し、シーンをいつキャプチャにするか決定するために使用され得るクロックをキャプチャ装置(20)に提供し得る。
【0027】
[0033]加えると、キャプチャ装置(20)は、例えば、3−Dカメラ(26)及び/又はRGBカメラ(28)によってキャプチャされた立体情報及び画像、及び/又はキャプチャ装置(20)によって生成され得る骨格モデルを、通信リンク(36)を介し計算環境(12)に提供し得る。その後、計算環境(12)が、モデル、立体情報、及びキャプチャされた画像を使用し得、例えば、ゲーム又はワードプロセッサーのようなアプリケーションを制御し得、及び/又はアバター又は画面上の登場人物を動画化し得る。例えば、図2のように計算環境(12)は、ジェスチャライブラリー(190)を含み得る。ジェスチャライブラリー(190)は(ユーザーが動く)骨格モデルによって実行され得るジェスチャに関する情報をそれぞれ含むジェスチャフィルター集合を含み得る。カメラ(26)、(28)、及びキャプチャ装置(20)によってキャプチャされた骨格モデル形式データ及びそれに関連付けられた動作が、(骨格モデルによって示される)ユーザーが1つ以上のジェスチャをいつ実行したか識別するために、ジェスチャライブラリー(190)ジェスチャのフィルターと比較され得る。これらのジェスチャは、様々なアプリケーションコントロールと関連付けられ得る。かくして計算環境(12)が、骨格モデルの動作を解釈し、その動作に基づいてアプリケーションをコントロールするためにジェスチャライブラリー(190)を使用し得る。
【0028】
[0034]図3は、目標認識、解析、及びトラッキングシステムにおいて、1つ以上のジェスチャを解釈し、及び/又は目標認識、解析、及びトラッキングシステムによって表示されるアバター又は画面上の登場人物を動画化するために使用され得る計算環境の実施形態例を示している。図1A〜図2に関連し前述した計算環境(12)のような計算環境は、ゲーム機などのマルチメディアコンソール(100)であり得る。図3のようにマルチメディアコンソール(100)は、レベル1キャッシュ(102)、レベル2キャッシュ(104)、及びフラッシュROM(読み出し専用メモリー)(106)を有する中央演算処理装置(CPU)(101)を有している。レベル1キャッシュ(102)及びレベル2キャッシュ(104)が、データを一時的にストアし、それによってメモリーアクセスサイクル数を減らし、その結果、処理速度及びスループットを改善する。2つ以上のコア、ひいては付加的なレベル1キャッシュ(102)及びレベル2キャッシュ(104)を有するCPU(101)が提供され得る。フラッシュROM(106)は、マルチメディアコンソール(100)が電源投入されたとき、ブートプロセスの初期段階の間、ロードされる実行プログラムをストアし得る。
【0029】
[0035]グラフィック処理装置(GPU)(108)及び映像エンコーダー/映像コーデック(符号化器/デコーダー)(114)が、高速かつ高解像度画像処理用の映像処理パイプラインを形成する。データが、画像処理装置(108)から映像エンコーダー/映像コーデック(114)へバスを介し伝達される。映像処理パイプラインは、テレビ又はその他のディスプレイへの伝送用A/V(音声/映像)ポート(140)へデータを出力する。メモリーコントローラー(110)が、RAM(ランダムアクセスメモリー)に限定しないが、そのような様々なタイプのメモリー(112)へのプロセッサーへのアクセスを容易にするGPU(108)と接続される。
【0030】
[0036]マルチメディアコンソール(100)は、I/Oコントローラー(120)、システム管理コントローラー(122)、音声処理装置(123)、ネットワークインターフェースコントローラー(124)、第1のUSBホストコントローラー(126)、第2のUSBコントローラー(128)、及び望ましくはモジュール(118)上に実装されるフロントパネルI/O部分組立体(130)を含む。USBコントローラー(126)及び(128)は、周辺機器コントローラー(142(1)〜142(2))、無線アダプター(148)、及び外部記憶装置(146)(例えば、フラッシュメモリー、外付けCD/DVD ROMドライブ、取り外し可能媒体など)に対しホスティングをする役目を果たす。ネットワークインターフェース(124)及び/又は無線アダプター(148)は、ネットワーク(例えば、インターネット、ホームネットワークなど)へのアクセスを提供し、イーサネットカード、モデム、ブルートゥースモジュール、ケーブルモデムなどを含む多種多様な有線又は無線アダプターコンポーネントのいずれかであり得る。
【0031】
[0037]ブートプロセス中、ロードされるアプリケーションデータをストアするためのシステムメモリー(143)が提供される。媒体ドライブ(144)が提供され、DVD/CDドライブ、ハードドライブ、又はその他の取り外し可能媒体ドライブなどを含み得る。媒体ドライブ(144)は内蔵か又はマルチメディアコンソール(100)に外付けであり得る。アプリケーションデータが、マルチメディアコンソール(100)によって再生などを実行するために媒体ドライブ(144)を介しアクセスされ得る。媒体ドライブ(144)は、シリアルATAバス又は他の高速接続(例えばIEEE1394)などのバスを介しI/Oコントローラー(120)と接続される。
【0032】
[0038]システム管理コントローラー(122)は、マルチメディアコンソール(100)の利用可能性保証に関連する様々なサービス機能を提供する。音声処理装置(123)及び音声コーデック(132)が、忠実性の高い三次元処理を用いて応答音声処理パイプライン処理装置を形成する。音声データが、音声処理装置(123)と音声コーデック(132)との間を通信リンクを介し伝達される。音声処理パイプラインが、音声機能を有する外付けオーディオプレーヤー又は装置によって再生するためにA/Vポート(140)へデータを出力する。
【0033】
[0039]フロントパネルI/O部分組立体(130)が、マルチメディアコンソール(100)の外面上に見ることができる電源スイッチ(150)及びイジェクトボタン(152)並びにいくつかのLED(発光ダイオード)又はその他の指標の機能性を支援する。システム電力供給モジュール(136)が、マルチメディアコンソール(100)のコンポーネントに電力を提供する。ファン(138)がマルチメディアコンソール(100)内部の回路を冷却する。
【0034】
[0040]マルチメディアコンソール(100)内部のCPU(101)、GPU(108)、メモリーコントローラー(110)、及びその他の様々なコンポーネントは、シリアルバス及びパラレルバス、メモリーバス、周辺機器用バス、及び様々なバスアーキテクチャのうちいずれかを使用したプロセッサーバス又はローカルバスを含む1つ以上のバスを介し相互に接続される。例として、上記アーキテクチャは、Peripheral Component Interconnects(PCI)バス、PCI−エクスプレスバスなどを含み得る。
【0035】
[0041]マルチメディアコンソール(100)が電源投入されたとき、アプリケーションデータが、システムメモリー(143)からメモリー(112)及び/又はキャッシュ(102)、(104)へロードされ、CPU(101)上で実行される。アプリケーションは、マルチメディアコンソール(100)上で利用可能な異なる媒体のタイプへナビゲートするとき、一貫性したユーザー体験を提供するグラフィカルユーザーインターフェースを提示し得る。動作中、媒体ドライブ(144)内部に含まれるアプリケーション及び/又はその他の媒体は、媒体ドライブ(144)から起動され得るか又は再生され得、マルチメディアコンソール(100)に付加的機能性を提供し得る。
【0036】
[0042]マルチメディアコンソール(100)は、システムをテレビ又はその他のディスプレイと単に接続することによって、単独で動作するシステムとして作動され得る。この単独動作モードのマルチメディアコンソール(100)によって1人以上のユーザーが、システムとの対話、映画の鑑賞、又は音楽の鑑賞が可能になる。しかしながら、ネットワークインターフェース(124)又は無線アダプター(148)を介し利用可能になるブロードバンドの接続性統合を用いると、マルチメディアコンソール(100)が更に、より大きなネットワークコミュニティに参加者として作動され得る。
【0037】
[0043]マルチメディアコンソール(100)が電源投入時されたとき、設定された量のハードウェア資源が、マルチメディアコンソールのオペレーティングシステムによるシステムを使用するために予約される。これらのリソースは、メモリー(例えば16MB)、CPU及びGPUサイクル(例えば5%)、ネットワーク帯域幅(例えば8kbs)などの予約を含み得る。これらのリソースはシステムのブート時に予約されるため、アプリケーションの観点から予約されるリソースは存在しない。
【0038】
[0044]具体的にメモリー予約は、望ましくは十分に大きく、起動カーネル、並列システムアプリケーション及びドライバーを含む。CPUの予約は、望ましくは一定であり、予約されたCPU利用が、システムアプリケーションによって使用されていない場合、アイドルスレッドが、いくらかの未使用サイクルを消費する。
【0039】
[0045]GPUの予約に関すると、システムアプリケーションによって生成される軽い(例えばポップアップ)メッセージが、ポップアップをオーバーレイにレンダリングするプログラムをスケジューリングするGPU中断を使用することによって、表示される。オーバーレイに要求されるメモリーの総計は、オーバーレイ領域のサイズ及び望ましくは画面解像度を伴うオーバーレイスケールによって決まる。十分なユーザーインターフェースが、並行システムアプリケーションによって使用されるところでは、アプリケーション解像度に影響されずに解像度を利用することが望まれる。スケーラーがこの解像度を設定するために使用され得、テレビの周波数を変更して再同時性をもたらす必要性が省かれる。
【0040】
[0046]マルチメディアコンソール(100)が起動し、システム資源が予約された後、システム機能性を提供する並列システムアプリケーションが実行する。システム機能性は、前述した予約されたシステム資源の範囲内で実行する一連のシステムアプリケーションにカプセル化される。オペレーティングシステムカーネルは、ゲームアプリケーションスレッドに対しシステムアプリケーションスレッドであるスレッドを識別する。本システムのアプリケーションは、望ましくは、一貫性のあるシステム資源の表示をアプリケーションに提供するために、所定の時間及び間隔でCPU(101)上で実行するようにスケジューリングされる。スケジューリングは、コンソール上で実行するゲームアプリケーションに対するキャッシュ分裂を最小化することである。
【0041】
[0047]並行システムアプリケーションが音声を必要とするとき、音声処理が時間感度によって、ゲームアプリケーションと非同期にスケジューリングされる。(後述される)マルチメディアコンソールのアプリケーションマネージャは、システムアプリケーションがアクティブであるとき、ゲームアプリケーションの音声の(例えば、ミュート、減衰)レベルを制御する。
【0042】
[0048]入力装置(例えば、コントローラー142(1)及び142(2))が、ゲームアプリケーション及びシステムアプリケーションによって共有される。入力装置は、予約される資源でないが、しかしシステムアプリケーションとゲームアプリケーションとの間で切換えられ、それぞれが装置のフォーカスを有し得る。アプリケーションマネージャが、ゲームアプリケーションの知識がなくても望ましくは入力ストリームの切換えを制御し、ドライバーが、フォーカス切換えに関する状態情報を維持する。カメラ(26)、(28)、及びキャプチャ装置(20)は、コンソール(100)用の付加入力装置を定義している。
【0043】
[0049]図4は、目標認識、解析、及びトラッキングシステムにおいて1つ以上のジェスチャを解釈し、及び/又は目標認識、解析、及びトラッキングシステムによって表示されるアバター又は画面上の登場人物を動画化するために使用される図1A〜図2のような計算環境(12)である別の計算環境(220)の実施形態例を示している。計算システム環境(220)は適切な計算環境の一例に過ぎず、開示される本対象項目の利用性又は機能性の範囲に関し、いかなる制限も提示するように意図されていない。計算環境(220)は、例示的動作環境(220)に示されている一コンポーネント又は任意の組み合わせに関連するいかなる依存性も要件も有していないものとして解釈されたい。実施形態の中には、示された様々な計算エレメントが、今開示される特定の態様を例示するように構成された回路を含み得るものもある。例えば、本開示において使用される用語の回路は、ファームウェア又はスイッチによって機能(単数又は複数)を実行するように構成される専用ハードウェアコンポーネントを含み得る。別の実施形態例の中には、用語の回路が、機能(単数又は複数)を実行するように作動可能なロジックを具体化するソフトウェア命令によって構成された汎用処理装置、メモリーなどを含み得るものもある。回路がハードウェア及びソフトウェアの組み合わせを含む実施形態例において、実装者が、ロジックを具体化するソースコードを記述し得、ソースコードが、汎用演算処理装置によって処理され得る計算機読み出し可能プログラムへコンパイルされ得る。当業者は、技術の最先端が、ハードウェア、ソフトウェア、又はハードウェア/ソフトウェアの組み合わせの間の差異がほとんどない程度に発展していることを十分に理解し得るのであるから、特定機能を実現するためのハードウェア対ソフトウェアの選択は、実装者に任せられた設計選択である。より具体的には、当業者は、ソフトウェアプロセスが同等のハードウェア構造へ変換され得ることと、ハードウェア構造がそれ自体、同等のソフトウェア処理へ変換され得ることと、を十分に理解されよう。かくして、ハードウェア実装対ソフトウェア実装の選択は、設計選択の1つであって実装者に委ねられている。
【0044】
[0050]図4において、計算環境(220)は、典型的に、様々な計算機可読媒体を含む計算機(241)を含む。計算機可読媒体は、計算機(241)によってアクセスされ得る利用可能な任意の媒体であり得、揮発性及び不揮発性媒体、及び取り外し可能及び取り外し不可能媒体双方を含む。システムメモリー(222)は、読み出し専用メモリー(ROM)(223)及びランダムアクセスメモリー(RAM)(260)などの揮発性及び/又は不揮発性メモリー形式の計算機記憶媒体を含む。起動中などに計算機(241)内部のエレメント間における情報送信を支援する基本ルーチンを含む基本入出力システム(BIOS)(224)は、典型的に、ROM(223)にストアされる。RAM(260)は、典型的に、演算処理装置(259)によって即座にアクセス可能な及び/又は目下作動されているデータ及び/又はプログラムモジュールを含む。非限定の例として、図4は、オペレーティングシステム(225)、アプリケーションプログラム(226)、その他のプログラムモジュール(227)、及びプログラムデータ(228)を示している。
【0045】
[0051]計算機(241)は、別の取り外し可能/取り外し不可能、揮発性/不揮発性計算機記憶媒体も含み得る。ほんの一例として、図4は、取り外し不可能、不揮発性磁気媒体から読み出すか又はそれに書き込むハードディスクドライブ(238)、取り外し可能、不揮発性磁気ディスク(254)から読み出すか又はそれに書き込む磁気ディスクドライブ(239)、CD−ROM、又はその他の光学式媒体などの取り外し可能、不揮発性光学式ディスク(253)から読み出すか又はそれに書き込む光学式ディスクドライブ(240)を示している。例示的な動作環境において使用され得る別の取り外し可能/取り外し不可能、揮発性/不揮発性計算機記憶媒体は、磁気カセットテープ、フラッシュメモリーカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROM等を含むがこれらに限定しない。ハードディスクドライブ(238)は、典型的に、インターフェース(234)のような取り外し不可能メモリーインターフェースを介しシステムバス(221)と接続され、磁気ディスクドライブ(239)及び光学式ディスクドライブ(240)は、典型的に、インターフェース(235)のような取り外し可能メモリーインターフェースによってシステムバス(221)と接続される。
【0046】
[0052]図4に前述され例示されたドライブ及びそれらに関連する計算機記憶媒体が、計算機(241)に計算機可読命令、データ構造、プログラムモジュール、及び別のデータ記憶装置を提供する。図4において、例えばハードディスクドライブ(238)は、オペレーティングシステム(258)、アプリケーションプログラム(複数)(257)、その他のプログラムモジュール(複数)(256)、及びプログラムデータ(255)をストアするように例示されている。これらのコンポーネントが、オペレーティングシステム(225)、アプリケーションプログラム(複数)(226)、その他のプログラムモジュール(複数)(227)、及びプログラムデータ(228)と同一か又は異なるどちらか一方であり得ることを留意されたい。オペレーティングシステム(258)、アプリケーションプログラム(257)、その他のプログラムモジュール(256)、及びプログラムデータ(255)は、本明細書において異なる番号を付与されていて、異なる最小限の複製物であることを示している。ユーザーは、一般に、キーボード(251)のような入力装置、及びマウス、トラックボール又はタッチパッドとして参照されるポインティングデバイス(252)を介し、計算機(241)へコマンド及び情報を入力し得る。その他(示されていない)入力装置は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナーなどを含み得る。これらの入力装置及びその他の入力装置は、多くの場合、システムバスに接続されるユーザー入力インターフェース(236)を介し演算処理装置(259)と接続されるが、パラレルポート、ゲームポート又はユニバーサルシリアルバス(USB)のような別のインターフェース及びバス構造によっても接続され得る。カメラ(26)、(28)、及びキャプチャ装置(20)は、コンソール(100)用の付加入力装置を定義している。モニター(242)又は別のタイプの表示装置もビデオインターフェース(232)のようなインターフェースを介しシステムバス(221)と接続される。モニターに加えて計算機は、周辺出力インターフェース(233)を介し接続され得るスピーカー(244)及びプリンター(243)のような別の周辺出力装置も含み得る。
【0047】
[0053]計算機(241)は、リモートコンピューター(246)のような1つ以上のリモートコンピューターとの論理接続を使用し、ネットワーク環境において作動し得る。リモートコンピューター(246)は、パーソナルコンピューター、サーバー、ルーター、ネットワークPC、ピア装置、又は別の一般的なネットワークノードであり得、典型的に、前述した計算機(241)に関連するエレメントの多く又はすべてを含むが、図4にはメモリー記憶装置(247)だけが例示されている。図2に示される論理的な接続は、ローカルエリアネットワーク(LAN)(245)及び広域ネットワーク(WAN)(249)を含むが、別のネットワークも含み得る。そのようなネットワーク環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット、及びインターネットにおいて一般的である。
【0048】
[0054]LANネットワーク環境において使用されるとき、計算機(241)は、ネットワークインターフェース又はアダプター(237)を介しLAN(245)と接続される。WANネットワーク環境において使用されるとき、計算機(241)は、典型的にインターネットなどのようなWAN(249)を介し通信を確立するモデム(250)又はその他の手段を含む。内蔵又は外付けがあり得るモデム(250)が、ユーザー入力インターフェース(236)又はその他の適切な手段を介し、システムバス(221)と接続され得る。ネットワークの環境において、計算機(241)又はその一部に関連し示されるプログラムモジュールが、リモートメモリー記憶装置にストアされ得る。非限定の例として図4が、記憶装置(247)上に常駐するリモートアプリケーションプログラム(248)を示している。示されたネットワーク接続が例示的であって、計算機間の通信リンクを確立する別の手段が使用され得ることを十分に理解されよう。
【0049】
[0055]図5は、シーンにおけるユーザーの動作をキャプチャするための方法例(300)の流れ図を表している。方法例(300)は、例えば、図1A〜図4に関し記述されたキャプチャ装置(20)及び/又は目標認識、解析、トラッキングシステム(10)の計算環境(12)を使用し、実装され得る。実施形態例において、方法(300)は、プログラムコード(すなわち命令)形式を取り得、例えば、図1A〜図4に関し記述された目標認識、解析、及びトラッキングシステム(10)のキャプチャ装置(20)及び/又は計算環境(12)によって実行され得る。
【0050】
[0056](305)において、一実施形態による画像が受信され得る。例えば、目標認識、解析、及びトラッキングシステムは、図1A〜図2に関し前述したキャプチャ装置(20)のようなキャプチャ装置を含み得る。キャプチャ装置が、1つ以上の目標を含むシーンをキャプチャ又は観察し得る。実施形態例において、キャプチャ装置は、飛行解析時間、構造光解析、立体ビジョン解析などのような適切な任意の技法を使用し、シーンのRGB画像、立体画像などのような画像を取得するために構成される立体視カメラであり得る。
【0051】
[0057]例えば、一実施形態において画像は立体画像を含み得る。立体画像は観察された複数の画素であり得、観察された画素それぞれが、観察された深度値を有している。例えば、立体画像は、キャプチャされたシーンの二次元(2−D)画素領域を含み得、2−D画素領域の画素それぞれが、キャプチャ装置からキャプチャされたシーンの被写体の長さ又は距離のような深度値を、例えばセンチメートル、ミリメートルで示し得る。
【0052】
[0058]図6は、(305)において受信され得る立体画像(400)の実施形態例を示している。実施形態例による立体画像(400)は、例えば、図2に関し前述したキャプチャ装置(20)の立体視カメラ(26)及び/又はRGBカメラ(28)によってキャプチャされたシーンの画像又はフレームであり得る。図6のように立体画像(400)は、例えば、図1A及び図1Bに関し前述したユーザー(18)のようなユーザーに相当するヒューマンターゲット(402)と、キャプチャされたシーンにおける壁、テーブル、モニター、などのような1つ以上の非ヒューマンターゲット(404)と、を含み得る。前述したような立体画像(400)は、観察された複数の画素を含み得、観察された画素それぞれが、それと関連付けられる観察された深度値を有している。例えば、立体画像(400)は、キャプチャされたシーンの二次元(2−D)画素領域を含み得、2−D画素領域の画素それぞれが、キャプチャ装置からキャプチャされたシーンの目標又は被写体の長さ又は距離のような深度値を、例えばセンチメートル、ミリメートルなどで示し得る。一実施形態において、立体画像(400)は、キャプチャ装置からのヒューマンターゲット(402)及び非ヒューマンターゲット(404)の異なる距離に相当するように及び/又は視覚的に表すように、立体画像の画素の異なる色が着色され得る。例えば、一実施形態による、キャプチャ装置の最も近くにある目標に関連する画素は赤及び/又はオレンジで立体画像に着色され得るが、一方、更に離れている目標と関連する画素は緑色及び/又は青で立体画像に着色され得る。
【0053】
[0059]戻って一実施形態の図5を参照すると、(305)において画像の受信時、立体画像は、より少ない計算オーバーヘッドを用いてより高速に処理されるように、及び/又はより容易に使用されるように、画像は、より小さな処理解像度に落とされてサンプリングされ得る。加えると、1つ以上の大きな差異及び/又はノイズ深度値が、立体画像から除かれ及び/又は平滑化され得、失われた立体情報及び/又は削除された立体情報の一部が、満たされ、及び/又は再構築され得、及び/又は別の適切な任意の処理が受信された立体情報上で実行され得、立体情報は、より詳細に後述される骨格モデルなどのモデルを生成するために使用され得る。
【0054】
[0060](310)において、画像内にユーザーのモデルが生成され得る。例えば、画像の受信時、目標認識、解析、及びトラッキングシステムは、立体画像内の目標又は被写体それぞれを大量情報で満たし、それぞれ大量情報で満たされた目標又は被写体を、様々な位置又はポーズの人間の体のモデルと関連付けられたパターンと比較することによって、立体画像が、図1A〜図1Bに関し前述した例えば、ユーザー(18)のようなユーザーに相当するヒューマンターゲットを含むか否か決定し得る。その後、パターンに一致する大量情報で満たされた目標又は被写体は、例えば、様々な体の一部の測定値を含む値を決定するために、分離され得、スキャンされ得る。実施形態例による骨格モデル、メッシュモデルなどのようなモデルがその後、スキャンに基づいて生成され得る。例えば、一実施形態によるスキャンによって決定され得る測定値は、1つ以上の関節をモデルに定義するために使用され得る1つ以上のデータ構造でストアされる。1つ以上の関節が、人間の体の一部に相当し得る1つ以上の骨を定義するために、使用され得る。
【0055】
[0061]図7は、例えば(310)において、ヒューマンターゲット用に生成され得るモデル(500)の実施形態例を示している。実施形態例によるモデル(500)は、例えば、図6に関し前述した立体的モデルとしてヒューマンターゲット(402)を示し得るデータ構造を1つ以上含み得る。体の一部それぞれは、モデル(500)の関節と骨を定義する数学で使われるベクトルとして特徴付けられ得る。
【0056】
[0062]図7のようにモデル(500)は、1つ以上の関節(j1〜j18)を含み得る。実施形態例による関節(j1〜j18)それぞれが、その間に定義された体の1つ以上の部分を別の体の1つ以上の部分に対して動くようにし得る。例えば、ヒューマンターゲットを表すモデルは、隣接した骨の交わりに位置付けられた関節(j1〜j18)を持つ「骨」のような1つ以上の構造部材によって定義され得る固定した及び/又は変形可能な複数の体の部分を含み得る。関節(j1〜18)が、骨及び関節(j1〜j18)と関連付けられた体の様々な部分を互いに無関係に動けるようにし得る。例えば、図7のような関節(j7)と(j11)との間に定義される骨は、前腕に相当し得、例えば、ふくらはぎに相当し得る関節(j15)と(j17)との間に定義される骨と無関係に動かされ得る。
【0057】
[0063]前述したように体の部分それぞれは、図7に示される骨及び関節を定義するX、Y、及びZ値を有する数学で使われるベクトルとして特徴付けられる。実施形態例において、図7に示される骨に関連付けられるベクトルの交わりが、関節(j1〜j18)に関連付けられるそれぞれの点を定義し得る。
【0058】
[0064]戻って図5を参照すると、その後、(315)において、モデルがユーザーによる動作に基づいて調整され得るように、モデルはトラッキングされ得る。一実施形態による、図7に関し前述したモデル(500)のようなモデルが、図1A及び図1Bに関し前述したユーザー(18)のようなユーザーの表現であり得る。目標認識、解析、及びトラッキングシステムは、モデルを調整するために利用され得るユーザー(18)のようなユーザーからの動作を、観察又はキャプチャし得る。
【0059】
[0065]例えば、図1A〜図2に関し前述したキャプチャ装置(20)のようなキャプチャ装置が、モデルを調整するために使用され得るシーンの立体画像、RGB画像などのような複数の画像を観察又はキャプチャし得る。一実施形態に従って画像それぞれが、定義された周波数に基づいて観察又はキャプチャされ得る。例えば、キャプチャ装置は、毎1ミリ秒、毎1マイクロ秒などの新しいシーン画像を観察又はキャプチャし得る。
【0060】
[0066]それぞれの画像受信時、特定の画像に関連付けられた情報は、ユーザーによる動作が実行されているか否か決定するために、モデルに関連付けられた情報と比較され得る。例えば、一実施形態においてモデルは、合成された立体画像のような合成画像へラスターデータ変換され得る。合成画像の画素は、受信画像のヒューマンターゲットが動いているか否か決定し得るために、受信画像それぞれのヒューマンターゲットに関連付けられた画素と比較され得る。
【0061】
[0067]実施形態例による1つ以上の力ベクトルは、合成画像と受信画像との間で比較された画素に基づいて算出され得る。その後、物理空間におけるヒューマンターゲット又はユーザーのポーズにより密接に相当するポーズにモデルを調整するために、1つ以上の力が、モデルの関節などの1つ以上の力の受信態様に適用され得るか又はマッピングされ得る。
【0062】
[0068]別の実施形態に従って、モデルは、ユーザーの動作に基づいてモデルを調整するために、受信画像それぞれにおけるヒューマンターゲットのマスク又は表現内に適合するように調整され得る。例えば、観察画像それぞれを受信すると、骨及び関節それぞれを定義し得るX、Y、及びZ値を含むベクトルが、受信画像のそれぞれにおけるヒューマンターゲットのマスクに基づいて調整され得る。例えば、モデルが、受信画像それぞれにおける人間のマスク画素に関連付けられたX及びY値に基づいてX方向及び/又はY方向に動かされ得る。加えると、モデルの骨及び関節が、受信画像それぞれにおけるヒューマンターゲットのマスク画素に関連付けられた深度値に基づいて、Z方向に回転され得る。
【0063】
[0069]図8A〜図8Cは、図1A及び図1Bに関し前述したユーザー(18)のようなユーザーによる動作又はジェスチャに基づいて調整されるモデルの実施形態例を示している。図8A〜図8Cのように、図7に関し前述したモデル(500)が、前述したように時間内の様々な時点において受信される立体画像にキャプチャされ得、観察された様々な時点のユーザーの動作又はジェスチャに基づいて調整され得る。例えば、図8Aのようなモデル(500)の関節(j4)、(j8)、及び(j12)とそれらの間に定義された骨は、前述したように時間内の様々な時点における受信画像のヒューマンターゲットに対するマスクと適合するように1つ以上の力ベクトルを適用するか又はモデルを調整することによって、ユーザーが彼又は彼女の左腕を上げたときのポーズ(502)を示すように調整され得る。関節(j8)及び(j12)とその間に定義された骨は更に、ユーザーが彼又は彼女の左の前腕を動かすことによって手を振ったとき、図8B〜図8Cのようなポーズ(504)及び(506)に調整され得る。かくして、実施形態例に従って関節(j4)、(j8)、及び(j12)とその間の前腕及び二頭筋と関連する骨とを定義している数学で使われるベクトルは、前述したように力ベクトルを適用するか又はマスク中にモデルを適合することによってポーズ(502)、(504)、及び(506)に相当するように調整され得るX、Y、及びZ値を有するベクトルを含み得る。
【0064】
[0070]戻って図5を参照すると、(320)において、トラッキングされたモデルのモーションキャプチャファイルが生成され得る。例えば、目標認識、解析、及びトラッキングシステムは、図1A及び1Bに関し前述したユーザー(18)のようなユーザー特有の手を振る動作、ゴルフスイングなどのスイング動作、パンチ動作、歩行動作、実行中の動作などのような1つ以上の動作を含み得るモーションキャプチャファイルをレンダリングし、ストアし得る。一実施形態によるモーションキャプチャファイルは、トラッキングされたモデルに関連付けられた情報に基づいてリアルタイムに生成され得る。例えば、一実施形態において、モーションキャプチャファイルは、例えば、時間内の様々な時点においてそれがトラッキングされたときの、モデルの関節と骨を定義し得るX、Y、及びZ値を含んでいるベクトルを含み得る。
【0065】
[0071]一実施形態例において、ユーザーは、モーションキャプチャファイルにキャプチャされ得る様々な動作を実行するように指示され得る。例えば、ユーザーに歩くか又はゴルフスイング動作を実行するように指示し得るインターフェースが、例えば表示され得る。前述したように、その後、トラッキングされているモデルが、時間内の様々な時点のそれらの動作に基づいて調整され得、指示された動作に関するモデルのモーションキャプチャファイルが生成され得、ストアされ得る。
【0066】
[0072]別の実施形態において、モーションキャプチャファイルは、目標認識、解析、及びトラッキングシステムとのユーザーの対話による自然な動きの中でトラッキングされたモデルをキャプチャし得る。例えば、モーションキャプチャファイルは、モーションキャプチャファイルが、目標認識、解析、及びトラッキングシステムとの対話の間、ユーザーによる任意の動き又は動作を自然にキャプチャし得るように生成され得る。
【0067】
[0073]一実施形態によるモーションキャプチャファイルは、例えば、時間内の異なる時点におけるユーザーの動作のスナップショットに相当するフレームを含み得る。トラッキングされたモデルをキャプチャすると、時間内の特定の時点において、それに適用される任意の動作又は調整を含むモデルに関連付けられた情報が、モーションキャプチャファイルのフレームにレンダリングされ得る。フレーム内の情報は、例えば、トラッキングされたモデルの関節と骨を定義し得るX、Y、及びZ値を含んでいるベクトルと、ユーザーがトラッキングされたモデルのポーズに相当する動作を実行した時間内の時点の指標であり得るタイムスタンプと、を含み得る。
【0068】
[0074]例えば、図8A〜8Cに関し前述したようにモデル(500)はトラッキングされ得、時間内の特定の時点において彼又は彼女の左手を振っているユーザーの指標であり得るポーズ(502)、(504)、及び(506)を形成するように調整され得る。ポーズ(502)、(504)、及び(506)それぞれに対するモデル(500)の関節と骨に関連付けられた情報は、モーションキャプチャファイルにキャプチャされる。
【0069】
[0075]例えば、図8Aに示されるモデル(500)のポーズ(502)は、ユーザーが最初に彼又は彼女の左腕を上げたときの時間内の時点に相当し得る。ポーズ(502)に関する関節と骨のX、Y、Z値などの情報を含んでいるポーズ(502)は、例えば、ユーザーが彼又は彼女の左腕を上げた後、時間内の時点に関連付けられた第1のタイムスタンプを有する、モーションキャプチャファイルの第1のフレームにレンダリングされ得る。
【0070】
[0076]同様に、図8B、8Cに示されるモデル(500)のポーズ(504)及び(506)は、ユーザーが彼又は彼女の左手を振っているときの時間内の時点に相当し得る。ポーズ(504)及び(506)に関する関節と骨のX、Y、Zなどの情報を含んでいるポーズ(504)及び(506)は、例えば、ユーザーが彼又は彼女の左手を振っている時間内の異なる時点に関連付けられた第2のタイムスタンプ及び第3のタイムスタンプそれぞれを有する、モーションキャプチャファイルの第2及び第3のフレームそれぞれにレンダリングされ得る。
【0071】
[0077]実施形態例によるポーズ(502)、(504)、及び(506)に関連付けられた第1、第2、及び第3それぞれのタイムスタンプの第1、第2、第3のフレームが、連続した時間順でモーションキャプチャファイルにレンダリングされ得る。例えば、ポーズ(502)に関連しレンダリングされた第1のフレームは、ユーザーが彼又は彼女の左腕を上げたとき0秒の第1のタイムスタンプを有し得、ポーズ(504)に関連しレンダリングされた第2のフレームは、ユーザーが彼又は彼女の左手を外側方向へ動かし手を振る動作を開始した後1秒の第2のタイムスタンプを有し得、ポーズ(506)に関連しレンダリングされた第3のフレームは、ユーザーが彼又は彼女の左手を内側方向へ動かし手を振る動作を終了したとき2秒の第3のタイムスタンプを有し得る。
【0072】
[0078](325)において、モーションキャプチャファイルが、アバター又はゲーム上の登場人物に適用され得る。例えば、目標認識、解析、及びトラッキングシステムは、モーションキャプチャファイルにキャプチャされたトラッキングされたモデルの動作1つ以上をアバター又はゲーム上の登場人物に適用し得、アバター又はゲーム上の登場人物が、図1A及び図1Bに関し前述したユーザー(18)のようなユーザーによって実行される動作を模倣するように動画化され得る。実施形態例において、モーションキャプチャファイルにキャプチャされたモデルの関節と骨が、ゲーム上の登場人物又はアバターの特定部分にマッピングされ得る。例えば、右肘に関連する関節が、アバター又はゲーム上の登場人物の右肘にマッピングされ得る。その後、右肘は、モーションキャプチャファイルのフレームそれぞれのユーザーのモデルに関連付けられた右肘の動作を模倣するように動画化され得る。
【0073】
[0079]実施形態例による目標認識、解析、及びトラッキングシステムは、動作がモーションキャプチャファイルにキャプチャされたとき1つ以上の動作を適用し得る。かくして、モーションキャプチャファイルのフレームがレンダリングされたとき、フレームにキャプチャされた動作が、アバター又はゲーム上の登場人物に適用され得、アバター又はゲーム上の登場人物が、フレームにキャプチャされた動作を即座に模倣するように動画化され得る。
【0074】
[0080]別の実施形態において、目標認識、解析、及びトラッキングシステムは、動作がモーションキャプチャファイルにキャプチャされ得た後、1つ以上の動作を適用し得る。例えば、歩行動作などの動きが、ユーザーによって実行され得、キャプチャされ得、モーションキャプチャファイルにストアされ得る。例えば、ユーザーの歩行動作のような動きに関連付けられたコントロールとして認識されたジェスチャをユーザーが続けて実行するたびに、その後、歩行動作などの動きが、アバター又はゲーム上の登場人物に適用され得る。例えば、ユーザーが、彼又は彼女の左足を持ち上げたとき、アバターを歩かせるコマンドが起動され得る。その後、アバターは、ユーザーに関連付けられ、モーションキャプチャファイルにストアされ得る歩行動作に基づいて歩き始め得、動画化され得る。
【0075】
[0081]図9A〜図9Cは、例えば(325)において、モーションキャプチャファイルに基づいて動画化され得るアバター又はゲーム上の登場人物(600)の実施形態例を示している。図9A〜図9Cのようにアバター又はゲーム上の登場人物(600)が、図8A〜8Cに関し前述したトラッキングされたモデル(500)に対しキャプチャされた手を振る動作を模倣するように動画化され得る。例えば、図8A〜8Cに示されるモデル(500)の関節(j4)、(j8)、及び(j12)とその間に定義される骨とが、図9A〜9Cのようにアバター又はゲーム上の登場人物(600)の左の肩関節(j4’)、左の肘関節(j8’)、及び左手首の関節(j12’)、及び相当する骨にマッピングされ得る。その後、アバター又はゲーム上の登場人物(600)が、モーションキャプチャファイルの第1、第2、及び第3のタイムスタンプそれぞれにおいて、図8A〜8Cに示されるモデル(500)のポーズ(502)、(504)、及び(506)を模倣するポーズ(602)、(604)、及び(606)に動画化され得る。
【0076】
[0082]かくして、実施形態例において、画面上の登場人物の外観は、モーションキャプチャファイルに応答し、変更され得る。例えば、図1A〜図1Bに関し前述したゲーム機上でコンピューターゲームをプレーしているユーザー(18)のようなゲームプレーヤーが、本明細書に記載されたようなゲーム機によってトラッキングされ得る。ゲームプレーヤーが腕を振ったとき、ゲーム機がこの動作をトラッキングし得、その後、トラッキングされた動作に応答し、それに従って、ユーザーに関連付けられた骨格モデル、メッシュモデルなどのようなモデルを調整し得る。前述したようにトラッキングされたモデルは更に、モーションキャプチャファイルにキャプチャされ得る。その後、モーションキャプチャファイルは、画面上の登場人物に適用され得、画面上の登場人物は、自らの腕を振っているユーザーの実際の動作を模倣するように動画化され得る。実施形態例による画面上の登場人物が、彼又は彼女の腕を振っているユーザーのように正確に、ゲームにおいて、例えばゴルフクラブ、バットを振るか又はパンチを食らわすように動画化され得る。
【0077】
[0083]本明細書に記載した構成及び/又は手法は、本来、例示的であって、これらの具体的な実施形態又は例は、限定している意味として考えられないように理解されたい。本明細書に記載した特定のルーチン又は方法は、1つ以上の処理戦略をいくらでも示している。したがって、例示した様々な動作が、例示した順番で、別の順番で、並列などで実行され得る。同様に、前述したプロセスの順序は変更され得る。
【0078】
[0084]本開示の対象項目は、本明細書に開示した様々なプロセス、システム、及び構成、並びにその他の特徴、機能、動作、及び/又は特性に関する新規的な自明でない組み合わせ及び部分的な組み合わせすべて、並びにその同等物のいくつか及びすべてを含む。
【符号の説明】
【0079】
10 トラッキングシステム
12 計算環境
14 画面
16 視聴覚装置
18 ユーザー
20 キャプチャ装置
22 カメラコンポーネント
24 赤外線光コンポーネント
26 立体視(3−D)カメラ
28 RGBカメラ
30 マイクロフォン
32 プロセッサー
34 メモリーコンポーネント
36 通信リンク
38 ボクシングの対戦相手
40 プレーヤーのアバター
100 マルチメディアコンソール
101 中央演算処理装置
102 レベル1キャッシュ
104 レベル2キャッシュ
106 フラッシュROM
108 画像処理装置(GPU)
110 メモリーコントローラー
112 メモリー
114 映像エンコーダー/映像コーデック(符号化器/デコーダー)
118 モジュール
120 I/Oコントローラー
122 システム管理コントローラー
123 音声処理装置
124 ネットワークインターフェースコントローラー
126 第1のUSBコントローラー
128 第2のUSBコントローラー
130 フロントパネルI/O部分組立体
132 音声コーデック
136 システム電力供給モジュール
138 ファン
140 A/Vポート
143 システムメモリー
144 媒体ドライブ
146 外部記憶装置
148 無線アダプター
150 電源スイッチ
152 イジェクトボタン
190 ジェスチャライブラリー
220 計算環境
221 システムバス
222 システムメモリー
223 読み出し専用メモリー(ROM)
224 基本入出力システム(BIOS)
225 オペレーティングシステム
226 アプリケーションプログラム
227 その他のプログラムモジュール
228 プログラムデータ
229 画像処理装置(GPU)
230 ビデオメモリー
231 グラフィックインターフェース
232 ビデオインターフェース
233 周辺出力インターフェース
234 取り外し不可能メモリーインターフェース
235 取り外し可能メモリーインターフェース
236 ユーザー入力インターフェース
237 アダプター
238 ハードディスクドライブ
239 磁気ディスクドライブ
240 光学式ディスクドライブ
241 計算機
242 モニター
243 プリンター
244 スピーカー
245 ローカルエリアネットワーク(LAN)
246 リモートコンピューター
247 メモリー記憶装置
248 リモートアプリケーションプログラム
249 広域ネットワーク(WAN)
250 モデム
251 キーボード
252 ポインティングデバイス
253 不揮発性光学式ディスク
254 不揮発性磁気ディスク
255 プログラムデータ
256 その他のプログラムモジュール(複数)
257 アプリケーションプログラム(複数)
258 オペレーティングシステム
259 演算処理装置
260 ランダムアクセスメモリー(RAM)
400 立体画像
402 ヒューマンターゲット
404 非ヒューマンターゲット
500 ユーザーと関連付けられたモデル
j1〜j18 関節
j 4' 相当する関節
j 8' 相当する関節
j12' 相当する関節
502〜506 ポーズ
600 アバター又はゲーム上の登場人物
602〜604 ポーズ

【特許請求の範囲】
【請求項1】
シーンにおけるユーザーの動作をキャプチャするための装置(20)であって、
前記シーンの画像(400)を受信するカメラコンポーネント(22)と、
計算機実行可能命令を実行するプロセッサー(32)と、を含んでいて、前記計算機実行可能命令が、
前記カメラコンポーネント(22)から前記シーンの前記画像(400)を受信するステップと、
前記ユーザーと関連付けられたモデル(500)を前記画像内に生成するステップと、
前記ユーザーによる動作に応答し、前記モデル(500)をトラッキングするステップと、
前記トラッキングされたモデル(500)に基づいて前記ユーザーの動作に関するモーションキャプチャファイルをリアルタイムに生成するステップと、に関する命令を含むことを特徴とする装置(20)。
【請求項2】
前記ユーザーによる前記動作が、物理空間における前記ユーザーに関連付けられた体の1つ以上の部分の1つ以上の動作を含むことを特徴とする請求項1記載の装置。
【請求項3】
前記トラッキングされたモデル(500)に基づいて、前記ユーザーの前記動作に関する前記モーションキャプチャファイルをリアルタイムに生成するステップに関する前記命令が、
前記ユーザーによる前記動作に応答し、前記トラッキングされたモデル(500)の第1のポーズ(502)、(504)、(506)をキャプチャするステップと、
前記トラッキングされたモデル(500)の前記第1のポーズ(502)、(504)、(506)を含む前記モーションキャプチャファイル内の第1のタイムスタンプで第1のフレームをレンダリングするステップと、に関する命令を含むことを特徴とする請求項1記載の装置。
【請求項4】
前記トラッキングされたモデル(500)に基づいて、前記ユーザーの前記動作に関する前記モーションキャプチャファイルをリアルタイムに生成するステップに関する前記命令が、
前記ユーザーによる前記動作に応答し、前記トラッキングされたモデル(500)の第2のポーズ(502)、(504)、(506)をキャプチャするステップと、
前記トラッキングされたモデル(500)の前記第2のポーズ(502)、(504)、(506)を含む前記モーションキャプチャファイル中の第2のタイムスタンプで第2のフレームをレンダリングするステップと、に関する命令を含む請求項3記載の装置。
【請求項5】
前記第1のフレーム及び前記第2のフレームが、前記第1のタイムスタンプ及び前記第2のタイムスタンプに対応する連続した時間順に前記モーションキャプチャファイルにレンダリングされることを特徴とする請求項4記載の装置。
【請求項6】
前記モデル(500)が、関節と骨を有する骨格モデルを含むことを特徴とする請求項5記載の装置。
【請求項7】
前記第1のフレームが、前記第1のポーズ(502)、(504)、(506)における前記関節と前記骨を定義している第1のベクトル集合を含むことと、前記第2のフレームが、前記第2のポーズ(502)、(504)、(506)における前記関節と前記骨を定義している第2のベクトル集合を含むことと、を特徴とする請求項6記載の装置。
【請求項8】
シーンにおけるユーザーの動作をキャプチャするための計算機実行可能命令がストアされる計算機可読記憶媒体(34)、(110)、(143)、(222)であって、前記計算機実行可能命令が、
前記シーンにおける画像(400)を受信するステップと、
前記画像(400)内に前記ユーザーのモデル(500)を生成するステップと、
前記ユーザーによる動作を模倣するように前記モデル(500)を調整するステップと、
前記調整されたモデル(500)に基づいて、前記ユーザーの前記動作に関するモーションキャプチャファイルを生成するステップと、に関する命令を含むことを特徴とする計算機可読記憶媒体。
【請求項9】
前記ユーザーによる前記動作が、物理空間における前記ユーザーに関連付けられた体の1つ以上の部分の1つ以上の動作を含むことを特徴とする請求項8記載の計算機可読記憶媒体。
【請求項10】
前記調整されたモデルに基づいて、前記ユーザーの前記動作に関する前記モーションキャプチャファイルを生成するステップに関する前記命令が更に、
前記調整されたモデル(500)のポーズ(502)、(504)、(506)をキャプチャするステップと、
前記調整されたモデル(500)の前記ポーズ(502)、(504)、(506)を含む前記モーションキャプチャファイル内のフレームをレンダリングするステップと、に関する命令を含むことを特徴とする請求項8記載の計算機可読記憶媒体。
【請求項11】
前記モデル(500)が、関節と骨を有する骨格モデルを含むことと、前記フレームが、前記ポーズ(502)、(504)、(506)における前記関節と前記骨を定義しているベクトル集合を含むことと、を特徴とする請求項10記載の計算機可読記憶媒体。
【請求項12】
更に、
前記モデル(500)の前記関節及び前記骨をアバター(600)の特定部分へマッピングするステップと、
前記調整されたモデル(500)における前記関節と前記骨の動作を模倣するように前記アバター(600)の前記特定部分を動画化するステップと、を含む請求項11記載の計算機可読媒体。
【請求項13】
ユーザーのモデル(500)をレンダリングするためのシステム(10)であって、
シーンの立体画像(400)を受信するカメラコンポーネント(22)を含むキャプチャ装置(20)と、
前記キャプチャ装置(20)と作用的に通信する計算装置(12)を含んでいて、前記計算装置(12)が、前記立体画像(400)内に前記ユーザーのモデル(500)を生成し、前記ユーザーによる動作に応答して前記モデル(500)をトラッキングし、前記ユーザーの前記動作を前記トラッキングされたモデル(500)に適用し、前記トラッキングされたモデル(500)に基づいて前記ユーザーの前記動作に関するモーションキャプチャファイルをリアルタイムに生成するプロセッサー(101)、(259)を含んでいることを特徴とするシステム。
【請求項14】
前記プロセッサー(101)、(259)が、前記モデル(500)の関節及び骨を前記アバター(500)の特定部分へマッピングし、前記トラッキングされたモデル(500)の前記関節及び前記骨に適用される前記ユーザーの動作を模倣するように前記アバター(600)の前記特定部分を動画化することによって、前記モーションキャプチャファイルを前記アバター(600)に適用することを特徴とする請求項13記載のシステム。
【請求項15】
前記計算装置が更に、その上にストアされるジェスチャライブラリー(190)を含むことと、前記プロセッサー(101)、(259)が、前記トラッキングされたモデル(500)に適用される前記1つ以上動作を前記ジェスチャライブラリー(190)と比較し、前記モーションキャプチャファイルを前記アバター(600)に適用するか否か決定することと、を特徴とする請求項13記載のシステム。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図8C】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate


【公表番号】特表2012−525643(P2012−525643A)
【公表日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2012−508562(P2012−508562)
【出願日】平成22年4月26日(2010.4.26)
【国際出願番号】PCT/US2010/032366
【国際公開番号】WO2010/126816
【国際公開日】平成22年11月4日(2010.11.4)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.HDMI
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】