モーション・キャプチャー・システムにおけるユーザー意図の認識
モーション・キャプチャー・システムにおいてアプリケーションとの相互作用を容易にする技法によって、人は、手作業の設定を行うことなく、容易に相互作用を始めることが可能になる。深度カメラ・システムが、物理空間において人を追跡し、この人のアプリケーションに関与する意図を評価する。位置、構え、動き、音声データーというような要因を評価することができる。深度カメラの視野における絶対位置、および他の人に対する相対的な位置を評価することができる。構えは、深度カメラに向き合うことを含み、相互作用する意欲を示すことができる。動きは、物理空間における中心エリアに向かって動くことおよび離れる方向に動くこと、歩いて視野を通過すること、ならびに、腕を振り回す、ジェスチャーを行う、体重を一方の足から他方の足に移動させるというような、ほぼ一カ所に立っている間に行われる動きを含むことができる。音声データーは、音量、および音声認識によって検出される単語を含むことができる。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] モーション・キャプチャー・システムは、物理的空間における人または他の物体の位置および動きに関するデーターを得て、このデーターを計算システムにおけるアプリケーションへの入力として用いることができる。軍隊、娯楽、スポーツ、医療目的のためというような、多くのアプリケーションが可能である。例えば、人のモーションを3d人間骨格モデルにマッピングし、動画化したキャラクターまたはアバターを作成するために用いることができる。光学システムは、可視光および不可視光、例えば、赤外線を用いるものを含み、視野において人の存在を検出するためにカメラを用いる。検出において補助するために人にマーカーを付けることができるが、マーカーのないシステムも開発されている。システムの中には慣性センサーを用いるものもあり、この慣性センサーは、動きを検出すべき人によって携行されるか、またはこの人に取り付けられる。例えば、ビデオ・ゲーム・アプリケーションの中には、ユーザーがワイヤレス・コントローラーを保持し、このワイヤレス・コントローラーが、ゲームをプレーしている間の動きを検出できるものもある。しかしながら、人がアプリケーションとより一層自然に相互作用することを可能にするためには、一層の改良が必要である。
【発明の概要】
【0002】
[0002] モーション・キャプチャー・システムを用いる物理的空間においてアプリケーションと相互作用するために、ユーザーの意図を認識するためのプロセッサー実装方法、モーション・キャプチャー・システム、および有形コンピューター読み取り可能ストレージを提供する。
【0003】
[0003] モーション・キャプチャー・システムによって提供される娯楽またはその他の体験のアクセス可能性を最大にするために、僅かな明示的行為によってまたは明示的行為を全く行うことなく、その体験にログインすることまたはその体験からログアウトすることによって、人がその体験に入るためおよびその体験から離れるための、簡素化された自動技法を提供する。人がモーション・キャプチャー・システムにおいて単に起き上がりプレーし始めること、プレーを終了するときに歩いて立ち去ること、彼または彼女が止めたところからプレーを再開するために再度戻って来ることを可能にする。人からの位置、移動、姿勢、および/または音声データーに基づいて、この人がアプリケーションに関与(engage)しようとする意図、アプリケーションから離脱(disengage)しようとする意図を判定する。更に、モーション・キャプチャー・システムの視野内にいる観戦者のような、他の人の意図も検出することができる。
【0004】
[0004] 一実施形態では、モーション・キャプチャー・システムにおいてアプリケーションに関与しようとする人の意図を認識するためのプロセッサー実装方法を提供する。この方法は、モーション・キャプチャー・システムの視野内においてこの人の身体を追跡するステップを含む。この追跡は、骨格モデルを用いて人の動きを識別することによってというようにして、視野においてこの人を区別する。この追跡に基づいて、本方法は、この人は第1の時点ではアプリケーションに関与する意図がないが、第2の時点ではアプリケーションに関与する意図があると判断する。人がアプリケーションに関与する意図があるとき、彼または彼女はこのアプリケーションに関与することを許される。この関与を容易にするために種々の策が講じられ、これによって、キーボードまたはその他の手動入力デバイス上においてパスワードおよびログイン・ユーザーidを入力するというような、人が手作業で入力を与える必要性はいずれも軽減される。具体的には、プロファイルおよびアバターを自動的に生成し、人と関連付けることができる。アバターは、ディスプレイ上における仮想空間に表示することができる。人がアバターを制御するためにこの人の身体を動かすことによってアプリケーションに関与するに連れ、視野における人の身体のその後の追跡に基づいて、表示が更新される。
【0005】
[0005] この摘要は、詳細な説明の章において以下で更に説明する概念から選択したものを紹介するために、設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使用されることを意図するのでもない。
【図面の簡単な説明】
【0006】
【図1a】図1aは、ユーザーがボクシングの試合をシミュレートするアプリケーションと相互作用する、モーション・キャプチャー・システムの一実施形態例を示す。
【図1b】図1bは、ユーザーがボクシングの試合をシミュレートするアプリケーションと相互作用する、モーション・キャプチャー・システムの一実施形態例を示す。
【図2】図2は、図1aのモーション・キャプチャー・システム10のブロック図例を示す。
【図3】図3は、図1aのモーション・キャプチャー・システムにおいて用いることができる計算環境のブロック図例を示す。
【図4】図4は、図1aのモーション・キャプチャー・システムにおいて用いることができる計算環境の別のブロック図例を示す。
【図5】図5は、人がモーション・キャプチャー・システムと相互作用することを可能にする方法を示す。
【図6a】図6aは、図5のステップ500において記述したような、人の動きを追跡する方法例を示す。
【図6b】図6bは、図6aのステップ608において記述したような、人のモデル例を示す。
【図6c】図6cは、図6aのステップ608において記述したような、人の他のモデル例を示す。
【図7a】図7aは、図5のステップ5において記述したように、人がアプリケーションに関与する意図があるか否か判断するための方法例を示す。
【図7b】図7bは、図7aのステップ700において論じたような、既定の位置に対して人の位置を評価する視野の一例を示す。
【図7c】図7cは、図7aのステップ700において論じたような、他の人に対して人の位置を評価する視野の一例を示す。
【図7d】図7dは、 図7aのステップ700において論じたような、人の位置を評価する視野の一例を示す。
【図8a】図8aは、図5のステップ504において記述したように、人がアプリケーションに関与するのをしやすくする方法例を示す。
【図8b】図8bは、図5のステップ504において記述したように、他のユーザーが現在アプリケーションに関与しているときに、人がアプリケーションに関与しやすくする方法例を示す。
【図9a】図9aは、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。
【図9b】図9bは、人がアプリケーションから離脱し、次いで再度このアプリケーションに関与するときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。
【図9c】図9cは、図5のステップ506において記述したように、そして図8bの方法にしたがって、プレーヤーがモーション・キャプチャー・システムの視野において位置を交換したときにおいて、アプリケーションに関与している間人を監視する方法例を示す。
【図9d】図9dは、アプリケーションに関与していない追加の人の追跡に基づいて、アプリケーションの出力を変更するときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。
【図9e】図9eは、一人の人が、アプリケーションに関与している他の人と代わるときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。
【図10a】図10aは、一人の人がアプリケーションに関与しており、他の人がこのアプリケーションに関与していない一例を示す。
【図10b】図10bは、二人の人が1つのアプリケーションに関与しており、ディスプレイ上の仮想空間の共通視点を有するときの表示例を示す。
【図10c】図10cは、二人の人が1つのアプリケーションに関与しており、ディスプレイ上の仮想空間の異なる視点を有するときの表示例を示す。
【図10d】図10dは、図10cの表示領域に対して、人が物理空間における位置を交換したときに、表示領域が交換される分割画面表示の一例を示す。
【図10e】図10eは、第1の人がプロファイルおよびアバターを用いてアプリケーションに関与しているときの表示例を示す。
【図10f】図10fは、第2の人が、プロファイルおよびアバターを用いてアプリケーションに関与している第1の人と代わるときに、図10eに続く表示例を示す。
【発明を実施するための形態】
【0007】
[0031] 人または人のグループがモーション・キャプチャー・システムにおいてアプリケーションと容易に相互作用することを可能にする種々の技法を提供する。深度カメラ・システムは、物理的空間における人の位置および動きを追跡し、これらを評価してこの人がアプリケーションに関与する、例えば、相互作用する意図があるか否か判断することができる。物理的空間からのオーディオ入力というような追加情報も用いることができる。場合によっては、人の動きまたは位置を、視野の中にいる他の一人以上の人について評価することもある。更に、アプリケーションにおいてある人のアバターをいつ活性化すべきか、そして人が現在アプリケーションに関与しているか否か反映するためにいつ表示を変更すべきか判断するための技法も提供する。人が異なる時点においてアプリケーションに関与するとき、この人が連続性を失うことなくこの関与を継続できるように、情報を格納する。例えば、人が彼または彼女の進展およびゲームにおいて費やした時間に基づいてスコアを得るまたはある種のパワーを獲得するゲームのようなアプリケーションでは、人は、既になされた進展を失うことなく、プレーを再開することができる。
【0008】
[0032] 図1aおよび図1bは、人18が、ボクシングの試合をシミュレートするアプリケーションと相互作用するモーション・キャプチャー・システム10の一実施形態例を示す。モーション・キャプチャー・システム10は、人18のような人間ターゲットを認識、分析、および/または追跡するために用いられる。人間ターゲットを、ユーザーまたはプレーヤーと呼ぶこともある。
【0009】
[0033] 図1aに示すように、モーション・キャプチャー・システム10は、コンピューター、ゲーミング・システムまたはコンソール等というような、計算環境12を含むことができる。計算環境12は、ハードウェア・コンポーネントおよび/またはソフトウェア・コンポーネントを含み、教育および/または娯楽目的というようなアプリケーションを実行することができる。
【0010】
[0034] 更に、モーション・キャプチャー・システム10は深度カメラ・システム20も含むことができる。深度カメラ・システム20は、例えば、人18のような一人以上の人を視覚的に監視して、この人によって行われるジェスチャーおよび/または動きを取り込み、分析し、追跡して、アバターまたは画面上のキャラクターを動画化する(animate)というように、アプリケーション内において1つ以上の制御または動作を実行することができるようにするために用いることができるカメラとすることができる。これについては、以下で更に詳しく説明する。
【0011】
[0035] モーション・キャプチャー・システム10は、テレビジョン、モニター、高品位テレビジョン(HDTV)等というような、視覚および聴覚出力をユーザーに提供するオーディオビジュアル・デバイス16に接続することができる。また、オーディオ出力は、別個のデバイスを通じて提供することもできる。オーディオビジュアル・デバイス16を駆動するために、計算環境12は、グラフィクス・カードのようなビデオ・アダプター、および/またはアプリケーションと関連付けられたオーディオビジュアル信号を供給するサウンド・カードのようなオーディオ・アダプターを含むことができる。オーディオビジュアル・デバイス16は、例えば、S−ビデオ・ケーブル、同軸ケーブル、HDMIケーブル、DVIケーブル、VGAケーブル等を通じて、計算環境12に接続することができる。
【0012】
[0036] 深度カメラ・システム20を用いて人18を追跡すると、この人のジェスチャーおよび/または動きを取り込んで、アバターまたは画面上キャラクターを動画化するために用いたり、および/または計算環境12によって実行されているアプリケーションに対する入力制御として解釈することができる。つまり、一実施形態例によれば、ユーザー18は彼または彼女の身体を動かしてアプリケーションを制御すること、および/またはアバターまたは他の画面上キャラクターを動画化することができる。
【0013】
[0037] 一例として、アプリケーションはボクシング・ゲームとすることができ、このゲームに人18が参加し、このゲームにおいて、オーディオビジュアル・デバイス16はボクシングの対戦相手38の視覚表現を人18に提示する。また、計算環境12は、オーディオビジュアル・デバイス16を用いてプレーヤー・アバター40の視覚表現を与えることもできる。プレーヤー・アバター40は、人を表し、その人が彼または彼女の体の動きによってプレーヤー・アバター40を制御することができる。
【0014】
[0038] 例えば、図1bに示すように、人18は、物理的空間、例えば、人が立っている部屋においてパンチを繰り出して、ボクシング・リングを含む仮想空間においてプレーヤー・アバター40にパンチを繰り出させることができる。つまり、一実施形態例によれば、モーション・キャプチャー・システム10の計算環境12および深度カメラ・システム20は、物理的空間における人18のパンチを認識し分析するために用いることができ、このパンチが、ボクシングの試合をシミュレートするアプリケーションへの入力として解釈され、仮想空間においてプレーヤー・アバター40を制御することができるようにする。
【0015】
[0039] また、人18による他の動きも、軽く叩く、行ったり来たりする、あちこち動き回る、防御する、ジャブする、または種々の異なる力のパンチを出すように制御するというように、プレーヤー・アバターを動画化するために用いられる他の制御または動作として解釈することができる。更に、動きの中には、プレーヤー・アバター40を制御する以外の動作に対応することもできる制御として解釈してもよい場合もある。例えば、一実施形態では、プレーヤーは、動きを用いて、ゲームを終了する、一時停止する、またはセーブする、レベルを選択する、高スコアを見る、友人と通信する等を行うこともできる。プレーヤーは、動きを用いて、主ユーザー・インターフェースからゲームまたは他のアプリケーションを選択することもできる。つまり、ユーザー18の動きの最大範囲が利用可能であり、使用し、アプリケーションと相互作用するために適した方法であればいずれでも、分析することができる。
【0016】
[0040] 人は、アプリケーションと相互作用するときに、プロップのような物体を保持することができる。このような実施形態では、人および物体の動きを用いて、アプリケーションを制御することができる。ラケットを持っているプレーヤーの動きを追跡し、テニス・ゲームをシミュレートするアプリケーションにおいて画面上のラケットを制御するために用いることができる。他の実施形態例では、プラスチック製の刀のようなおもちゃの武器を持っているプレーヤーの動きを追跡し、海賊船を示すアプリケーションの仮想空間において対応する兵器を制御するために用いることができる。
【0017】
[0041] モーション・キャプチャー・システム10は、更に、ターゲットの動きを、娯楽やレジャーを目的とするゲームや他のアプリケーションの範囲の外側にあるオペレーティング・システムおよび/またはアプリケーション制御として解釈するために用いることもできる。例えば、オペレーティング・システムおよび/またはアプリケーションの事実上あらゆる制御可能な態様を、人18の動きによって制御することができる。
【0018】
[0042] 図2は、図1aのモーション・キャプチャー・システム10のブロック図例を示す。深度カメラ・システム20は、例えば、飛行時間、構造化光、立体画像などを含む任意の適した技法によって、深度値を含むことができる深度画像を含む深度情報と共にビデオを取り込むように構成することができる。深度カメラ・システム20は、深度情報を「Zレイヤー」、または深度カメラからその視線に沿って延びるZ軸に対して垂直となることができるレイヤーに編成することができる。
【0019】
[0043] 深度カメラ・システム20は、物理空間における場面の深度画像を取り込む深度カメラのような、画像カメラ・コンポーネント22を含むことができる。深度画像は、取り込まれた場面の二次元(2D)画素エリアを含むことができ、この2D画素エリアにおける各画素は、画像カメラ・コンポーネント22からの直線距離を表す、関連深度値を有する。
【0020】
[0044] 画像カメラ・コンポーネント22は、赤外線(IR)発光コンポーネント24、三次元(3D)カメラ26、および場面の深度画像を取り込むために用いることができるRGBカメラ28を含むことができる。例えば、飛行時間分析では、深度カメラ・システム20のIR発光コンポーネント24は、物理空間に向けて赤外線光を放出することができ、次いでセンサー(図示せず)を用いて、その物理空間の中にある1つ以上のターゲットおよび物体の表面から散乱される光を、例えば、3Dカメラ26および/またはRGBカメラ28を用いて検出することができる。実施形態の中には、パルス状赤外線光を用いて、発信光パルスと対応する入射光パルスとの間の時間を測定し、深度カメラ・システム20から物理空間の中にあるターゲットまたは物体上における特定の場所までの物理的距離を判定するために用いることを可能にするとよい場合がある。発信光波の位相を着信光波の位相と比較して、位相ずれを判定することもできる。次いで、位相ずれを用いて、深度カメラ・システムからターゲットまたは物体上の特定の場所までの物理的距離を判定することができる。
【0021】
[0045] また、飛行時間分析を用いると、例えば、散乱光パルス撮像(shuttered light pulse imaging)を含む種々の技法で経時的な光の反射ビームの強度を分析することによって、深度カメラ・システム20からターゲットまたは物体上の特定の場所までの物理的距離を間接的に判定することができる。
【0022】
[0046] 他の一実施形態例では、深度カメラ・システム20は、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン光(即ち、格子パターン、縞パターンのような既知のパターンとして表示される光)を、例えば、IR発光コンポーネント24によって場面に向けて投射する。場面において1つ以上のターゲットまたは物体の表面に衝突したときに、それに応答して、パターンが変形する可能性がある。このようなパターンの変形を、例えば、3Dカメラ26および/またはRGBカメラ28によって取り込むことができ、次いで分析して、深度カメラ・システムからターゲットまたは物体上における特定の場所までの物理的距離を判定することができる。
【0023】
[0047] 他の実施形態によれば、深度カメラ・システム20は、2つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度からの場面を捕らえて、視覚的な立体像を得て、これを解明することによって深度情報を発生することができる。
【0024】
[0048] 深度カメラ・システム20は、更に、マイクロフォン30を含むことができる。マイクロフォン30は、音響波を受信し電気信号に変換するトランスデューサーまたはセンサーを含むことができる。加えて、マイクロフォン30を用いると、人によって供給される音響のようなオーディオ信号を受信し、計算環境12において実行されるアプリケーションを制御することができる。オーディオ信号は、発話された単語、ホイッスルの音、叫びおよびその他の発声というような人の声音(vocal sound)、ならびに拍手または足の踏みならしのような、音声以外の音響を含むことができる。
【0025】
[0049] 深度カメラ・システム20は、画像カメラ・コンポーネント22と動作的に通信することができるプロセッサー32を含むことができる。プロセッサー32は、標準化されたプロセッサー、特殊化されたプロセッサー、マイクロプロセッサー等を含むことができ、例えば、深度画像を受け取るための命令、この深度画像に基づいて3D画素の格子を発生するための命令、3D画素の格子に含まれる背景を除去して、人間の目標と関連のある1つ以上の3D画素を分離するための命令、分離された人間のターゲットの1つ以上の四肢の位置(location or position)を判定するための命令、1つ以上の四肢の位置に基づいてモデルを調節するための命令、あるいは他の適した命令であれば他のいずれでも実行することができる。これについては、以下で更に詳しく説明する。
【0026】
[0050] 更に、深度カメラ・システム20は、メモリー・コンポーネント34を含むことができる。メモリー・コンポーネント34は、プロセッサー32によって実行することができる命令、3DカメラまたはRGBカメラによって取り込まれた画像またはフレーム、あるいは任意の他の適した情報、画像等を格納することができる。一実施形態例によれば、メモリー・コンポーネント34は、ランダム・アクセス・メモリー(RAM)、リード・オンリー・メモリー(ROM)、キャッシュ、フラッシュ・メモリー、ハード・ディスク、またはあらゆる他の適した有形コンピューター読み取り可能記憶コンポーネントを含むことができる。メモリー・コンポーネント34は、バス21を通じて画像キャプチャ・コンポーネント22およびプロセッサー32と通信する別のコンポーネントとすることができる。他の実施形態によれば、メモリー・コンポーネント34をプロセッサー32および/または画像キャプチャ・コンポーネント22に統合してもよい。
【0027】
[0051] 深度カメラ・システム20は、通信リンク36を通じて、計算環境12と通信状態におくことができる。通信リンク36は、有線接続および/またはワイヤレス接続とすることができる。一実施形態によれば、計算環境12は、クロック信号を深度カメラ・システム20に通信リンク36を通じて供給することができる。このクロック信号は、深度カメラ・システム20の視野内にある物理空間からいつ画像データーを取り込むべきかを示す。
【0028】
[0052] 加えて、深度カメラ・システム20は、例えば、3Dカメラ26および/またはRGBカメラ28によって取り込まれた深度情報および画像、および/または深度カメラ・システム20によって発生することができる骨格モデルを、計算環境12に通信リンク36を通じて供給することができる。次いで、計算環境12は、このモデル、深度情報、および取り込まれた画像を用いて、アプリケーションを制御することができる。例えば、図2に示すように、計算環境12は、ジェスチャー・フィルターの集合体のような、ジェスチャー・ライブラリー190を含むことができ、各ジェスチャー・フィルターは、骨格モデルによって(ユーザーが動くに連れて)実行することができるジェスチャーに関する情報を含む。例えば、ジェスチャー・フィルターは、以下の各々に合わせて設けることができる。一方または両方の腕を上にまたは横まで上げる、腕をぐるぐると回転させる、鳥のようにある者の腕を叩く、前方、後方、または一方側に傾く、飛び上がる、踵を上げることによってつま先で立つ、足踏みをする、視野/物理空間内における異なる位置まで歩く等。検出された動きを各フィルターと比較することによって、人が実行した指定のジェスチャーまたは動きを識別することができる。どの程度まで動きが行われたかも判定することができる。
【0029】
[0053] 深度カメラ・システム20によって取り込まれた骨格モデルの形態のデーター、およびそれと関連付けられた動きを、ジェスチャー・ライブラリー190の中にあるジェスチャー・フィルターと比較して、いつユーザー(骨格モデルによって表現される)が1つ以上のジェスチャーを行ったのか特定することができる。これらの動きは、アプリケーションの種々の制御と関連付けることができる。
【0030】
[0054] また、計算環境12はプロセッサー192も含むことができる。プロセッサー192は、メモリー194に格納されている命令を実行してオーディオ−ビデオ出力信号をディスプレイ・デバイス196に供給し、更に本明細書において記載する他の機能を遂行する。
【0031】
[0055] 図3は、図1aのモーション・キャプチャー・システムにおいて用いることができる計算環境のブロック図例を示す。この計算環境は、1つ以上のジェスチャーまたはその他の動きを解釈し、それに応答してディスプレイ上において仮想空間を更新するために用いることができる。図1a、図1b、および図2に関して先に説明した計算環境12のような計算環境は、ゲーミング・コンソールのような、マルチメディア・コンソール100を含むことができる。マルチメディア・コンソール100は、レベル1キャッシュ102、レベル2キャッシュ104、およびフラッシュROM(リード・オンリー・メモリー)106を有する中央演算装置(CPU)101を有する。レベル1キャッシュ102およびレベル2キャッシュ104は、一時的にデーターを格納し、こうしてメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させる。CPU101は、1つよりも多いコア、したがって追加のレベル1およびレベル2キャッシュ102および104を有して設けることもできる。フラッシュROM106は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール100の電源をオンにしたときに、ブート・プロセスの初期段階中にロードされる。
【0032】
[0056] グラフィクス処理ユニット(GPU)108およびビデオ・エンコーダー/ビデオ・コデック(コーダー/デコーダー)114が、高速および高分解能グラフィクス処理のためにビデオ処理パイプラインを形成する。データーは、バスを通じて、GPU108からビデオ・エンコーダー/ビデオ・コデック114に伝達される。ビデオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、データーをA/V(オーディオ/ビデオ)ポート140に出力する。メモリー・コントローラー110がGPU108に接続されており、RAM(ランダム・アクセス・メモリー)のような、種々のタイプのメモリー112にプロセッサーがアクセスし易くなる。
【0033】
[0057] マルチメディア・コンソール100は、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モジュール、ケーブル・モデム等を含む広範囲の種々の有線またはワイヤレス・アダプター・コンポーネントのいずれでもよい。
【0034】
[0058] システム・メモリー143は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ144が設けられており、DVD/CDドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブを備えることができる。メディア・ドライブ144は、マルチメディア・コンソール100の内部にあっても外部にあってもよい。アプリエーション・データーには、実行、再生等のためにマルチメディア・コンソール100が、メディア・ドライブ144を介してアクセスすることができる。メディア・ドライブ144は、シリアルATAバスまたはその他の高速接続のようなバスを通じて、I/Oコントローラー120に接続されている。
【0035】
[0059] システム管理コントローラー122は、マルチメディア・コンソール100の利用可能性を確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット123およびオーディオ・コデック132は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオ・データーは、通信リンクを通じて、オーディオ処理ユニット123とオーディオ・コデック132との間で伝達される。オーディオ処理パイプラインは、外部オーディオ・プレーヤーまたはオーディオ処理能力を有するデバイスによる再生のために、データーをA/Vポート140に出力する。
【0036】
[0060] フロント・パネルI/Oサブアセンブリ130は、電力ボタン150およびイジェクト・ボタン152の機能をサポートするだけでなく、マルチメディア・コンソール100の外面上に露出する任意のLED(発光ダイオード)またはその他のインディケーターもサポートする。システム電源モジュール136が、マルチメディア・コンソール100のコンポーネントに電力を供給する。ファン138は、マルチメディア・コンソール100内部にある回路を冷却する。
【0037】
[0061] CPU101、GPU108、メモリー・コントローラー110、およびマルチメディア・コンソール100内部にある種々のその他のコンポーネントは、1系統以上のバスを通じて相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、周辺バス、および種々のバス・アーキテクチャのいずれかを用いるプロセッサー・バスまたはローカル・バスが含まれる。
【0038】
[0062] マルチメディア・コンソール100の電源を投入すると、システム・メモリー143からメモリー112および/またはキャッシュ102、104にアプリケーション・データーをロードし、CPU101において実行することができる。アプリケーションは、グラフィカル・ユーザー・インターフェースを提示することができる。このグラフィカル・ユーザー・インターフェースは、マルチメディア・コンソール100において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび/またはメディア・ドライブ144内に収容されている他のメディアをメディア・ドライブ144から起動または再生して、マルチメディア・コンソール100に追加の機能を設けることもできる。
【0039】
[0063] 単にシステムをテレビジョンまたはその他のディスプレイに接続することによって、マルチメディア・コンソール100を単独システムとして動作させることができる。この単独モードでは、マルチメディア・コンソール100は、一人以上のユーザーがシステムと相互作用を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワーク・インターフェース124またはワイヤレス・アダプター148によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディア・コンソール100を更に大きなネットワーク・コミュニティーにおける関与体(participant)として動作させることもできる。
【0040】
[0064] マルチメディア・コンソール100の電源を投入すると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー(例えば、16MB)、CPUおよびGPUサイクル(例えば、5%)、ネットワーキング帯域幅(例えば、8kbs)等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。
【0041】
[0065] 特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを含めるのに十分大きいことが好ましい。確保されたCPU使用枠(usage)がシステム・アプリケーションによって用いられない場合、アイドルのスレッドがいずれかの未使用サイクルを消費するように、CPUの確保は一定であることが好ましい。
【0042】
[0066] GPUの確保に関して、GPU割り込みを用いることによって、システム・アプリケーション(例えば、ポップアップ)によって発生される軽量メッセージ(lightweight message)を表示して、ポップアップをオーバーレイにレンダリングするコードをスケジューリングする。オーバーレイに用いられるメモリー量は、オーバーレイのエリア・サイズに依存し、オーバーレイは画面の解像度と共にスケーリングする(scale)ことが好ましい。コンカレント・システム・アプリケーションによってフル・ユーザー・インターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更しTVの同期を取り直す必要性をなくすように、この解像度を設定するためにスケーラーを用いるとよい。
【0043】
[0067] マルチメディア・コンソール100がブートして、システム・リソースを確保した後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステム・リソースの内部で実行する1組のシステム・アプリケーションの中にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、マルチメディア・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点におよび所定の間隔でCPU101において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソールにおいて実行しているゲーミング・アプリケーションに対するキャッシュ分裂(disruption)を最少に抑えるためにある。
【0044】
[0068] コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、オーディオ処理を非同期にゲーミング・アプリケーションにスケジューリングする。マルチメディア・コンソール・アプリケーション・マネージャー(以下で説明する)は、システム・アプリケーションがアクティブのとき、マルチメディア・アプリケーションのオーディオ・レベル(例えば、無音化、減衰)を制御する。
【0045】
[0069] 入力デバイス(例えば、コントローラー142(1)および142(2))は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されるリソースではないが、システム・アプリケーションとマルチメディア・アプリケーションとの間で切り換えられて、各々が対象のデバイスを有するようにする。アプリケーション・マネージャは、好ましくは、ゲーミング・アプリケーションの知識を用いずに入力ストリームの切換を制御し、ドライバーはフォーカス・スイッチ(focus switches)に関する状態情報を維持する。コンソール100は、カメラ26および28を含む、図2の深度カメラ・システム20から追加の入力を受け取ることができる。
【0046】
[0070] 図4は、図1aのモーション・キャプチャー・システムにおいて用いることができる計算環境の他のブロック図例を示す。この計算環境は、1つ以上のジェスチャーまたはその他の動きを解釈し、それに応答してディスプレイ上における仮想空間を更新するために用いることができる。計算環境220は、コンピューター241を含む。コンピューター241は、通例、種々の有形コンピューター読み取り可能媒体を含む。これは、コンピューター241がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー222は、リード・オンリー・メモリー(ROM)223およびランダム・アクセス・メモリー(RAM)260のような揮発性および/または不揮発性メモリーの形態とした、コンピューター記憶媒体を含む。基本入出力システム224(BIOS)は、起動中のように、コンピューター241内のエレメント間におけるデーター転送を補助する基本的なルーティンを収容しており、通例ROM223内に格納されている。RAM260は、通例、演算装置259が直ちにアクセス可能であるデーターおよび/またはプログラム・モジュール、または現在これによって処理されているデーターおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図4は、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228を示す。
【0047】
[0071] また、コンピューター241は、その他のリムーバブル/非リムーバブル揮発性/不揮発性コンピューター記憶媒体も含むことができる。例えば、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ238、リムーバブル不揮発性磁気ディスク254からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ239、ならびにCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク253からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ240を含むことができる。この動作環境の一例において使用可能なその他のリムーバブル/非リムーバブル、揮発性/不揮発性有形コンピューター読み取り可能記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれる。ハード・ディスク・ドライブ238は、通例、インターフェース234のような非リムーバブル・メモリー・インターフェースを介してシステム・バス221に接続され、磁気ディスク・ドライブ239および光ディスク・ドライブ240は、通例、インターフェース235のようなリムーバブル・メモリー・インターフェースによって、システム・バス221に接続する。
【0048】
[0072] 先に論じ図4に示すドライブおよびそれらと連動するコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター241のその他のデーターを格納する。例えば、ハード・ディスク・ドライブ238は、オペレーティング・システム258、アプリケーション・プログラム257、その他のプログラム・モジュール256、およびプログラム・データー255を格納するように示されている。尚、これらの構成要素は、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム258、アプリケーション・プログラム257、その他のプログラム・モジュール256、およびプログラム・データー255は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザーは、キーボード251、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス252によって、コマンドおよび情報をコンピューター241に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース236を介して、演算装置259に接続されている。ユーザー入力インターフェース236は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)によって接続することも可能である。カメラ26、28を含む図2の深度カメラ・システム20は、コンソール100の追加入力デバイスを定めることができる。モニター242またはその他の形式の表示装置も、ビデオ・インターフェース232のようなインターフェースを介して、システム・バス221に接続されている。モニターに加えて、コンピューターは、スピーカー244およびプリンター243のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース233を通じて接続することができる。
【0049】
[0073] コンピューター241は、リモート・コンピューター246のような1つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター246は、パーソナル・コンピューター、サーバー、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター241に関して先に説明したエレメントの多くまたは全てを含むが、図4にはメモリー記憶装置247のみを示す。論理接続は、ローカル・エリア・ネットワーク(LAN)245およびワイド・エリア・ネットワーク(WAN)249を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては極一般的である。
【0050】
[0074] LANネットワーク環境で用いる場合、コンピューター241は、ネットワーク・インターフェースまたはアダプター237を介してLAN245に接続する。WANネットワーク環境で用いる場合、コンピューター241は、通例、モデム250、またはインターネットのようなWAN249を通じて通信を確立するその他の手段を含む。モデム250は、内蔵でも外付けでもよく、ユーザー入力インターフェース236またはその他の適切な機構を介してシステム・バス221に接続することができる。ネットワーク環境では、コンピューター241に関係付けて図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図4は、リモート・アプリケーション・プログラム248がメモリー・デバイス247に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを確立する他の手段も使用可能であることは認められよう。
【0051】
[0075] 図5は、モーション・キャプチャー・システムと相互作用することを人に可能にする方法を示す。ステップ500は、モーション・キャプチャー・システムの視野において人の動きおよび位置を追跡することを含む。ステップ500の更なる詳細については、図6a〜図6cに関連付けて説明する。判断ステップ502では、人がアプリケーションに関与する意図があるか否か判断する。ステップ502の更なる詳細については、図7a〜図7dおよび図10aに関連付けて説明する。概略的に、ステップ502では、指定された意図を人が有する確率を、1つ以上の変数に基づいて判断し、確率が十分に高い場合に、派生する動作をトリガーすることができる。
【0052】
[0076] 人が関与する意図がない場合、ステップ500の追跡が継続する。判断ステップ502が真である場合、ステップ504では、人がアプリケーションに関与し易くする。ステップ504の更なる詳細については、図8a、図8b、および図10b〜図10fと関連付けて説明する。ステップ506は、アプリケーションに関与している間この人を監視することを含む。ステップ506の更なる詳細については、図9a〜図9dと関連付けて説明する。
【0053】
[0077] 例えば、図5の方法では、人が最初に視野に入ったときというような第1の時点では、この人はアプリケーションと関与する意図がないが、この人が数秒間視野の中にいたときというような、その後の第2の時点においては、アプリケーションに関与する意図があると判断することができる。尚、人が最初に視野に入ったときに関与する意図が彼または彼女の気持ちの中に形成されていることもあるが、未だこの人を十分長い時間観察していないので、モーション・キャプチャー・システムはまだその意図を判断していないことを注記しておく。第1の時点においてアプリケーションがインアクティブ・モードである場合、第2の時点において、この人がアプリケーションと関与する意図があると判断したことに応答して、アクティブ・モードに設定することができる。インアクティブ・モードでは 例えば、黒い画面またはスクリーン・セーバー表示を与えることによって、アプリケーションの通常の視覚または聴覚出力を抑制することができ、一方アクティブ・モードでは、通常の視覚または聴覚出力を供給することができる。
【0054】
[0078] 図6aは、図5のステップ500において記述したような、人の動きを追跡する方法の一例を示す。この方法例は、例えば、図2から図4に関連付けて論じたような、深度カメラ・システム20および/または計算環境12、100、または220を用いて実現することができる。一人以上の人を走査して、骨格モデル、メッシュ人間モデルというようなモデルを発生することができ、または他の適した人間の表現であればいずれでも発生することができる。次いで、このモデルは、計算環境によって実行されるアプリケーションと相互作用するために用いることができる。走査してモデルを発生するのは、アプリケーションを開始または起動したときに行うことができ、あるいは走査される人のアプリケーションによって制御される他の時点において行うことができる。
【0055】
[0079] 人を走査して骨格モデルを発生することができ、ユーザー58の身体的動き(movement)または運動(motion)がリアル・タイム・ユーザー・インターフェースとして動作してアプリケーションのパラメータを調節および/または制御することができるように、この骨格モデルを追跡することができる。例えば、人の動きを追跡して、この追跡した動きを用いて電子ロール・プレーイング・ゲームにおいてアバターまたは他の画面上キャラクターを動かすこと、電子競走ゲームにおいて画面上の車両を制御すること、仮想環境において建物または物体の編成を制御すること、あるいはアプリケーションの他の適した制御であればいずれでも実行することができる。
【0056】
[0080] 一実施形態によれば、ステップ600において、深度情報を、例えば、深度カメラ・システムから受け取る。深度カメラ・システムは、1つ以上のターゲットを含むかもしれない視野を取り込むまたは観察することができる。一実施形態例では、深度カメラ・システムは、先に論じたように、飛行時間分析、構造化光分析、ステレオ画像分析などのようないずれかの適した技法を用いて、キャプチャー・エリアの中にある1つ以上のターゲットと関連のある深度情報を得ることができる。深度情報は、複数の被観察画素を有する深度画像を含むことができ、先に論じたように、被観察画素の各々は観察深度値を有する。
【0057】
[0081] 深度画像は、より少ない計算オーバーヘッドでより簡単に用いて処理することができるように、更に低い処理分解能にダウンサンプルするとよい。加えて、1つ以上の高分散および/またはノイズの多い深度値を、深度画像から除去するおよび/またはスムージングするとよい。深度情報からなくなった部分および/または除去された部分は、埋めることおよび/または再現することができ、および/または、深度情報を用いて、図6bおよび図6cと関連付けて論じた、骨格モデルのようなモデルを発生することができるように、受け取った深度情報に対して他のいずれかの適した処理を実行することができる。
【0058】
[0082] 判断ステップ604において、深度画像が人間ターゲットを含むか否かについて判定を行う。これは、深度画像の中にある各ターゲットまたは物体を塗りつぶし(flood fill)し、各ターゲットまたは物体をパターンと比較して、深度画像が人間ターゲットを含むか否か判断することを含むことができる。例えば、深度画像の選択されたエリアまたは点における画素の種々の深度値を比較して、先に説明したように、ターゲットまたは物体を定義することができるエッジを決定することができる。決定されたエッジに基づいて、Zレイヤーの適当なZ値で塗りつぶすことができる。例えば、決定されたエッジと関連のある画素、およびエッジ内にあるエリアの画素を互いに関連付けて、キャプチャー・エリアにおいてターゲットまたは物体を定義することができ、このターゲットまたは物体をパターンと比較することができる。これについては、以下で更に詳しく説明する。
【0059】
[0083] 判断ステップ604が真である場合、ステップ606を実行する。判断ステップ604が偽である場合、ステップ600において追加の深度情報を受け取る。
[0084] 各ターゲットまたは物体を比較するパターンは、人間の典型的な身体を集合的に定義する1組の変数を有する1つ以上のデーター構造を含むことができる。視野内にある、例えば、人間ターゲットおよび人間以外のターゲットの画素と関連のある情報を変数と比較して、人間ターゲットを識別することができる。一実施形態では、1組の中にある変数の各々に、身体部分に基づいて重み付けすることができる。例えば、パターンにおける頭部および/または肩というような種々の身体部分に関連付けることができる重み値は、脚部のような他の身体部分よりも大きくするとよい。一実施形態によれば、ターゲットを変数と比較してターゲットが人間であるか否か、そしてどのターゲットが人間であり得るか判断するときに、重み値を用いることができる。例えば、変数と、より大きな重み値を有するターゲットとの間に一致がある場合、より小さな重み値による一致よりも、ターゲットが人間である可能性が高くなるとするとよい。
【0060】
[0085] ステップ606は、人間ターゲットを走査して身体部分を求めることを含む。人間ターゲットを走査して、人の1つ以上の身体部分と関連のある長さ、幅等のような測定値を供給し、人の正確なモデルを得ることができる。一実施形態例では、人間ターゲットを分離することができ、1つ以上の身体部分を走査するために人間ターゲットのビットマスクを作成することができる。ビットマスクは、例えば、人間ターゲットをキャプチャー・エリアのエレメントにおいて他のターゲットまたは物体から分離できるように、人間ターゲットを塗りつぶすことによって製作することができる。次いで、このビットマスクを分析して1つ以上の身体部分を求め、人間ターゲットの骨格モデル、メッシュ人間モデルなどのようなモデルを発生することができる。例えば、一実施形態によれば、図6bおよび図6cと関連付けて論じるように、走査したビットマスクによって決定された測定値を用いて、骨格モデルにおける1つ以上の関節を定義することができる。1つ以上の関節は、人間の身体部分に対応することができる1つ以上の骨を定義するために用いることができる。
【0061】
[0086] 例えば、人間ターゲットのビットマスクの最上位を頭の天辺の位置と関連付けることができる。頭部の天辺を決定した後、ビットマスクを下方に走査して、首の位置、肩の位置等を次に決定することができる。例えば、走査されている位置におけるビットマスクの幅を、例えば、首、肩等と関連のある典型的な幅の閾値と比較することができる。代替実施形態では、以前に走査した位置であってビットマスクにおける身体部分と関連のある位置からの距離を用いて、首、肩などの位置を決定することができる。脚部、足などのような身体部分の一部は、例えば、他の身体部分の位置に基づいて計算することもできる。身体部分の値を決定するとき、その身体部分の測定値を含むデーター構造を作成する。このデーター構造は、深度カメラ・システムによって異なる時点において供給される多数の深度画像から平均した走査結果を含むことができる。
【0062】
[0087] ステップ608は、人間ターゲットのモデルを発生することを含む。一実施形態では、走査したビットマスクによって決定された測定値を用いて、骨格モデルにおける1つ以上の関節を定義することができる。1つ以上の関節は、人間の身体部分に対応する1つ以上の骨を定義するために用いられる。例えば、図6bは、図6aのステップ608において記述した人のモデル例620を示し、図6cは、図6aのステップ608において記述した人の他のモデル例630を示す。
【0063】
[0088] 一般に、各身体部分は、骨格モデルの関節および骨を定義する数学的ベクトルとして特徴付けることができる。身体部分は、関節において互いに対して動くことができる。例えば、前腕セグメント628は関節626および629に接続されており、上腕セグメント624は関節622および626に接続されている。前腕セグメント628は、上腕セグメント624に対して動くことができる。
【0064】
[0089] 1つ以上の関節は、これらの関節が人間の関節と身体部分との間における典型的な距離の範囲内に収まるまで調節して、一層正確な骨格モデルを発生することができる。更に、例えば、人間ターゲットと関連のある高さに基づいて、モデルを調節することもできる。
【0065】
[0090] ステップ610において、毎秒数回人の位置を更新することによってモデルを追跡する。ユーザーが物理空間において動くにつれて、骨格モデルが人を表すように、骨格モデルを調節するために深度カメラ・システムからの情報を用いる。即ち、1つ以上の力を骨格モデルの1つ以上の力受入面(force-receiving aspect)に加えて、物理空間内にある人間ターゲットの姿勢に一層密接に対応する姿勢に、骨格モデルを調節することができる。
【0066】
[0091] 一般に、人の動きを追跡するためには、知られている技法であればいずれでも用いることができる。
[0092] 図7aは、図5のステップ502において記述したように、人がアプリケーションに関与する意図があるか否か判断する方法例を示す。人の意図を判断するには、種々の要因を考慮することができる。これらの要因の1つ以上を用いることができる。更に、供給される要因は、アプリケーションに関与する意図、または関与しない意図(または離脱する意図)のいずれかを、関連があるが反対の概念として示すことができる。例えば、関与する意図の低い確率は、関与しない意図の高い確率と同等と考えられる。これらの要因は、例えば、毎秒多数回、数秒というような時間期間にわたって頻繁に評価すれば、人の意図を一層正確に理解することができる。
【0067】
[0093] ステップ700では、視野、例えば、部屋のような物理空間における人の位置を評価する。例えば、図7bは、人の位置が既定位置に対して評価される視野の一例を示す。点700は深度カメラを表し、線722および724は視野726の境界を表す。深度カメラの光軸即ちz軸、例えば、深度カメラが物理空間を見る方向の中心を延びる線を含む座標系を定義することができ、視野は通例光軸を中心に対称である。深度カメラがディスプレイと同じ方向に面する場合、光軸は一般にディスプレイの平面に対して垂直となる。z軸に対して垂直な交差軸(y軸)を定義することができる。第1ゾーン729は円形であり、半径r1、周囲728、およびz軸に沿った中心点727を有する。第2ゾーン731はドーナツ形即ち環状であり、内径r1、外径r2、内周728、外周730を有し、第1ゾーン729と同心円状であるか、または第1ゾーン729に隣接している。円形および同心円形ゾーンの使用は、一例に過ぎず、例えば、楕円、矩形、正方形等の他のゾーン形状も用いることができる。中心点734を有する円732は、アプリケーションに関与する意図を評価している人を収容する境界円筒を表す。人の中心点734は、中心点727から距離r3のところにある。境界ボックスまたは矩形を、境界円筒の代替として用いることができる。
【0068】
[0094] 例えば、人がアプリケーションと相互作用しようとする意図がある確率が高い位置、例えば、第1ゾーン729、アプリケーションと相互作用しようとする意図がある確率が中程度である位置、例えば、ゾーン731、あるいはアプリケーションと相互作用しようとする意図がある確率が低い、ゾーン729および731の外側にある視野762内の位置にいる可能性がある。これによって、アプリケーションと相互作用しようとする意図がある確率が最も高い位置、例えば、ゾーン729に対する人の位置に基づいて、位置に基づく確率測定を行うことができる。
【0069】
[0095] また、人の位置は、視野の中にいて現在アプリケーションに関与している他の人の位置に対して評価することもできる。例えば、アプリケーションに関与する意図がある人は、例えば、潜在的なチーム・メートまたはゲームにおける相手として、既にこのアプリケーションに関与している他の人の隣に立つことが考えられる。この人が、視野の中にいて既にアプリケーションに関与している他の人のそばにいる、または指定距離以内にいると判定することができる。例えば、図7cは、人の位置が他の人に対して評価される視野の一例を示す。ここで、中心点738を有する円736は、現在アプリケーションに関与している人を収容する境界円筒を表し、中心点734を有する円732は、アプリケーションに関与しようとする意図を評価されている人を収容する境界円筒を表す。軸744は、y軸に並行であり、中心点736を通過する。線740および742は、軸744に対して±αの角度で中心点738を通過する。線740および742の間において、人が円736によって表される人の側にいるまたはこの人と相並んでいると考えられる領域746を定義することができる。同様の領域を、人736の逆側にも定義することができる。d1は、中心点738から中心点734までの距離であり、円736および732によって描かれたそれぞれの人の間の距離を表す。あるいは、円736および732の円周間の最も短い距離である距離を定義することもできる。
【0070】
[0096] ここで、領域746(例えば、円736によって表される人の側)の中におり円732によって表される人には、円732によって表される人が領域746にいないときよりも、高い確率の関与しようとする意図を関連付けることができる。同様に、円732によって現れる人が、円736によって現れる人まで比較的近い距離d1にある領域746にいるときには、円732によって表される人が円738によって表される人まで比較的遠い距離にある領域746にいるときよりも、高い確率の関与しようとする意図を関連付けることができる。
【0071】
[0097] ステップ702では、人の構えまたは姿勢を評価する。例えば、人の身体が深度カメラに面しており、胸を張って深度カメラに向かっている(squared)場合***(例えば、図10bにおける人1022および1024)、この人がアプリケーションに関与する意図があることは、この人の身体がカメラに面しておらず、例えば、他の方向に向かって胸を張っている(例えば、図10aにおける人1026または1028)ときよりも確率が高くなる。この後者の場合、深度カメラはこの人の側面を見る。人が座っている姿勢(例えば、図10aにおける人1028)または横たわっている姿勢も同様に、アプリケーションに関与する意図を恐らくは示さない。同様に、胸の前で腕を組んでいる構えも関与する意図がないことを示すことができる。
【0072】
[0098] アプリケーション・コンテキストに特定的な関与しようとする意図の一例として、ヨガ運動に関するアプリケーションについて検討する。このアプリケーションでは、座る姿勢が、離脱する意図ではなく、関与する意図を示すことができる。更に、関与または離脱しようとする意図を判断する規準は、年齢、性別、身体的体力レベルまたは身体障害というような要因に基づいて調節することができる。例えば、ゆっくりした人の動きは、関与する意図であり得るが、動きが速い人では、そのようにならない。
【0073】
[0099] 特定の構えがどの位維持されたか判定するためにタイマーを用いることもできる。期間が長い程、関与または離脱する意図と深く関連付けることができる。
[0100] 構えに基づく確率測定は、アプリケーションに関与する意図がある確率が最も高い構えに対する人の構えに基づいて行うことができる。
【0074】
[0101] ステップ704では、視野における人の動きを評価する。例えば、人が素早く視野を横切って動いている場合(例えば、図10aにおける視野1021の中にいる人1026、または図7dにおいて円732によって表された人に対する矢印750の方向で表されるように)、この人は恐らく単に歩いて視野を通り過ぎただけであって、アプリケーションに関与する意図はない。また、人がディスプレイから遠ざかるように動いている場合(例えば、図7dにおいて円732によって表された人に対する矢印752の方向に)、ユーザーは恐らくアプリケーションに関与する意図はない。更に、人が、彼または彼女の腕を回しているとき(例えば、図10aにおいて人1024によって表されるように)、または一方の足から他方に体重を移動させているときというように、ほぼ1つの位置にいるが動いているように見える場合、これは、アプリケーションに関与しようとする意図がある確率の上昇と関連付けることができる。同様に、人がほぼ1つの位置にいるが、ほぼ静止しているように見える場合、これは、アプリケーションに関与しようとする意図がある確率の低下と関連付けることができる。更に、動きと位置の要因を関連付けることができ、例えば、関与する意図がある確率が高い位置に向かう動きは、関与する意図がある確率が高いことの印とすることができる。
【0075】
[0102] 人によって行われたジェスチャーも、動きの形態として考慮することができる。例えば、ユーザーが彼または彼女の腕を上げて深度カメラに受かって振って、この人が関与する意図があることを示すことができる。更に、意図に関するある種のジェスチャーは、アプリケーション・コンテキストに特定的であるとすることができ、例えば、コンテキスト感応ジェスチャーとすることができる。例えば、関与または離脱する意図を知らせるものとして予め定義されたジェスチャーがあってもよい。ジェスチャーは、動き(例えば、人の腕を横腹まで上げて次いでそれを下ろす動作を検出した場合)に基づいて、または静止位置(人の腕が横腹まで上げられたことを検出した場合)に基づいて識別することができる。
【0076】
[0103] 動きに基づく確率測定は、アプリケーションに関与する意図がある確率が最も高い動きに対する人の動きに基づいて行うことができる。
[0104] ステップ706では、人の音声データーを評価する。一般に、人の声音は、発話した単語、口笛、叫び、およびその他の発声を含むことができる。手を叩くというような非声音も検出することができる。指向性マイクロフォンを随意に用いると、音響が検出された方向を検出し、それを検出された人の位置と相関付けて、人がアプリケーションに関与する意図があることの確率の更に一層信頼性のある尺度を得ることができる。人が視野の外側にいても、人の意図を判定するためには、音声データーだけでも十分なこともあり得る。
【0077】
[0105] 音声データーの存在は、人がアプリケーションに関与する意図があることの高い確率と相関付けることができる。更に、音声データーの音量またはラウドネスを、人がアプリケーションに関与する意図がある高い確率と相関付けることができる。また、「開始」または「準備完了」というようなコマンドがアプリケーションに関与する意図を示すように、発話(speech)も検出することができる。つまり、人がアプリケーションに関与する意図があると判断する際、その人の音声データーを処理し、アプリケーションに関与する意図を示す発話を検出し、および/またはアプリケーションに関与する意図を示す音声音量を検出することを含むことができる。
【0078】
[0106] トリビア・ゲーム・ショー・アプリケーション(trivia game show application)の例では、プレーヤーは通常比較的静止しており、恐らくソファに座って質問に答える。この場合、新たな音声の存在の検出を、新たな人による関与する意図として評価することができる。同様に、以前に認識したある人の音声がある時間期間なくなった場合、今は黙っているその人による離脱の意図として評価することができる。
【0079】
[0107] 音声に基づく確率測定は、アプリケーションに関与する意図がある確率が最も高い音声データーに対する人の音声データーに基づいて行うことができる。
[0108] 一旦ある人がアプリケーションに関与する意図があると判断したなら、次に論ずるように、この関与をしやすくする。尚、人がアプリケーションに関与する意図があると判断したとき、または離脱するときというような、他のしかるべき時点において、しかるべきステータス情報をフィードバックとして提供できることを注記しておく。例えば、人がアプリケーションに関与する意図があると判断されたときには、呼び鈴の音というようなオーディオ・メッセージをアプリケーションによって発生することができ、人がアプリケーションから離脱する意図があると判断されたときには、アプリケーションによってドアを閉める音を発生することができる。
【0080】
[0109] アイコンのような視覚メッセージも、邪魔にならないディスプレイの横または下の領域にというように、ディスプレイ上に与えることができる。視覚メッセージは、現在関与している人の人数、および人の関与が保留されたとき(図9a参照)や、人が離脱したとき(図9b参照)のような、ステータスの変化を示すことができる。仮想空間に加入するときには新たなアバターが徐々に現れ、去りつつあるアバターは徐々に消えて行くように、視覚効果を付けることもできる。人がいつアプリケーションに拘束されるまたはされないのか理解できるように、明らかなフィードバックが与えられる。全てのプレーヤーが離脱したとき、アプリケーションを一時中止することができ、またそうでなければ、不活性化することができる。
【0081】
[0110] 図8aは、図5のステップ504において記述したように、人がアプリケーションに関与するときにしやすくする方法例を示す。ステップ800は、自動的にアバターおよびプロファイル・データーを発生することを含む。ステップ802は、このプロファイルおよびアバターを自動的に人に関連付けることを含む。ステップ804は、アバターをディスプレイ上に表示することを含み、ステップ806は、例えば、リアル・タイムで、人のその後の追跡に基づいて、表示を更新することを含む。その人が現在アプリケーションに関与している唯一の人である場合、アプリケーションはスタンバイ・モードから、ユーザーの動きに基づいて入力を受ける準備ができているレディ・モードに移ることができる。
【0082】
[0111] 人は、アプリケーションに関与するにあたって、いずれのタイプの手作業による設定プロセスを経る必要もなく、したがって、遅延なく、「出発およびプレーのみ」(just walk up and play)手法でアプリケーションと相互作用を開始することができる。キーボード、マウス、またはハンド・ヘルド・コントローラというようなハードウェアは、相互作用を始める際には不要である。
【0083】
[0112] 自動的に発生され人と関連付けられるアバターは、身長、幅、骨格モデル、その人の衣服からのRGB色データー等というような、その人の検出された特性、ならびに随意に音声トーンおよび音量というようなオーディオ特性に基づくことができる。または、デフォルトの汎用アバターを提供することもできる。また、人がしかるべきユーザー・インターフェースを用いて、自動的に発生したアバターを変更することも可能である。人は、アバターを構成するにあたって、いかなるタイプの手作業による設定プロセスを経る必要もなく、したがって、アバターを用いて遅延なくアプリケーションと相互作用し始めることができる。アプリケーションの中には、アバターが仮想空間を探検するに連れて、その外観またはその他の特徴を変更することができるものもある。アバターの特徴は、仮想空間において得られるまたは失われる能力(例えば、「パワー」)に関係付けることができる。場合によっては、人は実際の金またはプレー用の金を用いてアバターに特徴を購入し、仮想空間におけるアバターの動作によって特徴を獲得することまたは失うこともある。また、プロファイル・データーは、アバターの特徴または他の特性も含むことができる。人がアプリケーションに関与するのを停止してその後に戻ったとき、この人および彼または彼女のアバターを、人が離脱したときに存在していた状態に再現するために、プロファイル・データーにアクセスすることができる。
【0084】
[0113] 発生したプロファイルは、身長、幅、骨格モデル、その人の衣服からのRGB色データー等というような、その人の検出された特性、ならびに随意に音声トーンおよび音量というようなオーディオ特性を含むことができる。人の特性をアプリケーションに結び付けることによって、は、彼または彼女をアプリケーションに結び付けることができる。一般に、骨格データーのような特性は、人が視野に入ったときに、この人に結び付けることができる。つまり、プロファイル・データーは、深度カメラによって判定される身体的特性を含む、人の識別を含むことができる。
【0085】
[0114] また、プロファイル・データーは、人のアプリケーションとの相互作用を表す情報も含むことができる。例えば、ゲーム・アプリケーションでは、プロファイル・データーは、人が達成したスコアまたは進展、および仮想空間におけるその人のアバターの位置を示すことができる。仮想空間は、コンピューター・モニタ、テレビジョン画面のようなディスプレイ上に設けられるか、あるいは壁上に投影される。仮想空間は、あらゆる現実のまたは仮想の空間、屋内空間、あるいは野外空間を表すことができる。仮想空間は、人を表すアバターを含むことができ、このアバターは人の動きの追跡に基づいて動く。アバターは、フォトリアリズムの態様でユーザーを描写することができ、動物、車両、あるいはその他のキャラクターまたは物体であってもよい。
【0086】
[0115] 随意なこととして、ネットワーク構成の手法では、多数の人が同時に異なる位置からアプリケーションに関与する。例えば、第1および第2の友人が、それぞれ、彼らの自宅に別個の第1および第2モーション・キャプチャー・システムを有することが考えられる。彼らは、同時に仮想空間において相互作用し始めるように用意することができる。第1の人が彼または彼女の身体を動かして視野における第1アバターを制御することによってアプリケーションに関与すると、第1モーション・キャプチャー・システムは、当該第1モーション・キャプチャー・システムの視野における第1の人の身体を追跡する。また、第1モーション・キャプチャー・システムは、ネットワークを通じて、第2モーション・キャプチャー・システムからデーターを受信する。第2モーション・キャプチャー・システムは、第2の人が彼または彼女の身体を動かして仮想空間において第2アバターを制御することによって遠隔地からアプリケーションに関与すると、第2モーション・キャプチャー・システムの視野における第2の人の身体を追跡する。このデーターに応答して、第1アプリケーションは、ディスプレイ上の仮想空間に、第1アバターと共に第2アバターを表示し、第2の人が彼らの身体を動かして第2アバターを制御することによってアプリケーションに関与し続けるに連れて、表示を更新する。同様に、第2モーション・キャプチャー・システムは、ネットワークを通じて第1モーション・キャプチャー・システムからデーターを受信することができるので、第2の人は彼または彼女のディスプレイ上で双方のアバターを見ることができる。このように、両方の人が同じオーディオビジュアル出力を体験する。
【0087】
[0116] アバターおよび/または仮想空間の表示は、次に論ずるように、他の人が現在アプリケーションに関与しているか否かに基づいて調節することができる。
[0117] 図8bは、他のユーザーが現在アプリケーションに関与しているときに、図5のステップ504において記述したように、人がアプリケーションに関与しやすくする方法例を示す。ステップ810において、他の人が現在アプリケーションに関与しており、彼または彼女のアバターがディスプレイ上にあると判断する。ステップ812において、プロファイルおよびアバターを新たな人、例えば、アプリケーションに関与する意図があると新たに認識された人と関連付ける。この新たな人のアバターを描写するために表示を更新するときには、異なる選択肢が可能である。1つの手法では、ステップ814において、ディスプレイの同じ領域内にアバターを表示して、これらが同じ視点から見られるようにする。一例を図10bに示し、以下で更に詳しく論ずる。他の手法では、ステップ816において、ディスプレイの別個の領域にアバターを表示し、異なるそれぞれの視点からこれらを見ることができるようにする。一例を図10cに示し、以下で更に詳しく論ずる。
【0088】
[0118] 図9aは、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。人がアプリケーションに関与しているときには、種々のシナリオに遭遇する可能性がある。例えば、視野において他の人または物体によって人が遮られたため、人が視野を離れたため、または他の何らかの理由で人が検出されないために、人がもはや検出されなくなるという可能性がある。このようなシナリオに対処するための方法例では、判断ステップ900において、閾値時間期間にわたって人がもはや検出されていないか否か判断する。この閾値時間期間は、例えば、ある検出サイクル数に対応することができる。通例、毎秒数回の検出サイクルがある。しかるべき閾値時間期間は、検査によって決定することができる。判断ステップ900が偽である場合、ステップ902において、人はアプリケーションとの関与を続ける。例えば、アバターがディスプレイ上に留まることができる。
【0089】
[0119] 判断ステップ900が真である場合、ステップ904において、その人のアプリケーションとの関与を保留にする。これは、しかるべき視覚および/または可聴メッセージを与えることを含むことができる。加えて、人のアバターが仮想空間から除去されるように、これを不活性化することができる。代わりに、アバターをディスプレイの別の領域に表示して、これが一時的にインアクティブであることを示すことができる。または、アバターは仮想空間に留まることができるが、例えば、半透明の外観を有して、アクティブでないことを示し、例えば、それを動かすことができないようにする。関与する人が多数いて、各人に別々の画面領域が割り当てられる場合(図10cにおけるような場合)、保留は、保留にされた人の画面領域が除去されるように表示を更新する(図10bにおけるように)ことを含むことができる。
【0090】
[0120] 随意なこととして、判断ステップ906において、人が視野を離れて行ったのが追跡されたか否か判断する。これは、例えば、視野における人の動きを追跡して、この人が視野の境界の方向に移動し、その後もはや検出できなくなったか否か判断することによって、判断することができる。判断ステップ906が偽である場合、人は未だ視野内にいるが、おそらくは他の人または他の物体、例えば、家具によって遮られており、深度カメラによって検出することができないと仮定する。この場合、ステップ908において、この人は後に再度検出される。以前に検出された人がもはや検出されなくなり、次いで再度検出された場合、骨格モデルのようなこの人の身体的特性に基づいて、この人を特定することができる。
【0091】
[0121] 判断ステップ912では、人が時間切れになったか否か判断する。これが意味するのは、関与が指定時間期間、例えば、数分よりも長い間保留にされたということである。判断ステップ912が偽である場合、ステップ916において、関与する意図を再度判断することなく、この人の関与を継続する。以前と同様、しかるべき視覚メッセージおよび/または可聴メッセージをアプリケーションによって与えることができる。関与の継続は、例えば、アバターを再度活性化することを含むことができる。まだ関与している他の人が一人以上いる場合、保留は、関与が継続した人に別々の画面領域が与えられるように(図10cにおけるように)表示を更新することを含むことができる。判断ステップ912が真である場合、ステップ914において、人のアプリケーションに関与する意図が新たに判断し直され、その後に人は再度関与することができる。このように、再度関与する意図を明示するまで、この人は離脱したものとして扱われる。
【0092】
[0122] 判断ステップ906が真である場合、人は視野から既に離れていることになる。この場合、ステップ910においてこの人が後に再度検出されたとき、この人のアプリケーションに関与する意図が、ステップ914において新たに判断し直され、その後にこの人は再度関与することができる。
【0093】
[0123] 図5における例は、最初に視野に入ったときというように、人が第1時点ではアプリケーションに関与する意図がないが、何秒か後というような、後の第2時点では、アプリケーションに関与する意図があることを示した。図9bの例では、人は、第2時点の後になる、第3時点において、アプリケーションから離脱する意図があり、これに応答して、プロファイルおよびアバターが、この人の識別子にインデックスされて、自動的に格納される。更に、この人は、第3時点の後になる、第4時点においてアプリケーションに再度関与する意図を明示し、これに応答して、格納されたプロファイルおよびアバターに基づいて、この人は再度アプリケーションに関与する。
【0094】
[0124] 図9bは、人がアプリケーションから離脱し、次いで再度このアプリケーションに関与するときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。この場合、1つ以上の要因が、この人がアプリケーションから離脱する意図があることを示すとき(ステップ910)、この人は、現在視野において検出することができ、現在アプリケーションに関与していると考えられる。一般に、関与または離脱する意図を判断するためには、図7aと関連付けて論じられたのと同じ要因を用いることができる。例えば、視野内において、関与する意図の低い確率と関連付けられている位置にその人がいる場合、これは、離脱する意図の高い確率に対応する。人が関与する意図の低い確率と関連付けられている構えを有する場合、これは、離脱する意図の高い確率に対応する。人が、関与する意図の低い確率と関連付けられている動きを有する場合、これは、離脱する意図の高い確率に対応する。離脱する意図を示す動きには、人がディスプレイから離れるように歩くこと、ディスプレイに背を向けること(立っているまたは歩いている間に)、関与する意図がある確率が最も高い位置から遠ざかるように歩くこと、および/または視野の境界に向かって歩き次いで視野から出ることが含まれる。指定された時間期間にわたって人から音声データーがでないことも、離脱する意図の高い確率と関連付けることができる。
【0095】
[0125] アプリケーション・コンテキストに特定的な離脱する意図の一例として、物理空間において人による実際の前後(back and forth)の動き、前方への動き、および後方への動きを必要とするアプリケーションについて考える。この場合、離脱する意図に対する規準は、このようなより大きな動きに対応するように調節することができる。実際の動きを必要としないアプリケーションでは、実際の動きを離脱する意図の印と見なすことができる。または、ヨガ運動に関するアプリケーションでは、座っている姿勢が予期されると考えられ、これを離脱する意図の印と見なしてはならない。
【0096】
[0126] ステップ912では、人の識別子にインデックスされたプロファイル・データーおよびアバター・データーを格納する。識別子は、身長および幅、ならびに骨格モデル、トーンおよびその他の要因に基づいて特定の人と関連付けることができる音声データー、衣服の色というような色データー等というような、人の身体特性と関連付けることができる。また、人は、「さよなら」または「停止」というような、認識済みのコマンドを発話することもできる。後のある時点において、ステップ914では、人がアプリケーションに再度関与する意図があると判断する。ステップ916では、格納されているプロファイルおよびアバター・データーにアクセスし、離脱したときに離れたのと同じ場所において、この人がアプリケーションと再度関与でき、この人の体験の連続性を維持できるようにする。
【0097】
[0127] 図9cは、図5のステップ506において記述したように、そして図8bの方法にしたがって、プレーヤーがモーション・キャプチャー・システムの視野において位置を交換したときにおいて、アプリケーションに関与している間人を監視する方法例を示す。判断ステップ920では、プレーヤーが視野内において位置を交換したか否か判断する。彼らが交換した場合、ステップ922において、人特定表示領域も交換する。例えば、図10cに示すように、ディスプレイ1004の領域1005は人1022に対してアバター1023を表示し、ディスプレイ1004の領域1006は人1024に対してアバター1025を表示する。このように、表示領域は、物理空間の中にいる人に対応して位置付けられ、左側の表示領域は左側の人に、そして右側の表示領域は右側の人に割り当てられる。アプリケーションと相互作用するとき、人は位置を交換することができ、例えば、右から左にそして左から右に交換することができる。例えば、アプリケーションの中には、物理空間全体における人によるかなりの移動を伴うので、固定位置が維持されないものもある。したがって、人は自然に物理空間において横方向に動くことができる。場合によっては、一人の人が、他の人のディスプレイまでの視野を遮るので、遮られた人が横に動いて位置を交換することもある。
【0098】
[0128] 人1022および1024が位置を交換して、図10dに示すように、人1024が左側に、そして人1022が右側に来るようにすると、表示領域1005および1006は、それに応じて交換され、表示領域1005が右側に移動し、表示領域1006が左側に移動する。
【0099】
[0129] 一般に、1つの表示領域から2つ以上の表示領域への遷移、および逆は自動的に行うことができる。尚、2つよりも多い表示領域を伴う遷移も可能であることを注記しておく。例えば、二人のプレーヤーが彼ら自身の表示領域を有しているときに第3のプレーヤーが加入した場合、2つの表示領域から3つの表示領域も可能である。各表示領域は、物理空間におけるプレーヤーの位置に対応して位置付けることができる。更に、表示領域を縦に、一方の上に他方を重ねることが可能である。例えば、一人のプレーヤーが視野内においてより高い表面に立っているために、他のプレーヤーよりも高くなる可能性があるので、高い方のプレーヤーの表示領域は、低い方のプレーヤーの表示領域の上に示される。
【0100】
[0130] 表示領域数において、または表示領域の交換において、過度に頻繁な変更を避けるように注意すべきである。1つの変化が生じた後、他の変更を許容するまでの最小時間を設定するとよい。場合によっては、関与する人が一時的に他の関与する人または観客によって遮られる可能性があり、したがって追跡することができないこともある。このような場合に連続性を確保するためには、表示領域はできるだけ正常に応答し続けなければならない。
【0101】
[0131] 図9dは、アプリケーションに関与していない追加の人の追跡に基づいて、アプリケーションの出力を変更するときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。人を追跡してアプリケーションに関与する意図があるか否か判断することに加えて、視野の中にいる他の人の意図を判断し、対応する入力をアプリケーションに供給することも可能である。例えば、一人以上の人が視野の中に観客としていて、他の人がアプリケーションに関与するのを見て、彼または彼女を励ますというようなこともあり得る。ステップ930は、視野の中にいる追加の人を追跡することを含む。この人は、現在アプリケーションに関与しておらず、例えば、ディスプレイ上の仮想空間においてアバターを制御しない。判断ステップ932では、この追加の人のアプリケーションに対する興味が高くなっているか否か判断する。これは、図7aと関連付けて論じた要因を含む種々の要因を用いて判断することができる。更に、関心がある観客が行う行為に関する他の要因も検出することができる。例えば、関与している人の背後または横に、同じ距離のところに1人以上の人を検出することがあるかもしれない。一人以上の人が、立ち上がる、応援するために彼らの腕を彼らの頭よりも高く上げる、またはうるさく聞こえる声援を発するというような行為を行うこともあり得る。
【0102】
[0132] 判断ステップ932が偽である場合、ステップ930の追跡が継続する。判断ステップ932が真である場合、ステップ934において、アプリケーションの視覚出力および/または可聴出力を変更する。例えば、人のアバターが走っているかまたは運転しているアプリケーションにおいて、人を応援している観客に対するしかるべき応答を、娯楽体験を高めるための速度上昇(speed boost)または一層派手なプレー(play louder)、ペースを速めた背景音楽というような、拡張機能と共にアバターに与えることにしてもよい。
【0103】
[0133] シナリオの一例では、モーション・キャプチャー・システムの視野における第1の人(既にアプリケーションに関与している)の動きを追跡することを含み、視野において第1の人の身体を区別することを含み、第1の人は、第1の人の身体を動かしてディスプレイ上の仮想空間においてアバターを制御することによってアプリケーションと相互作用を行う。第1の人の動きを追跡している間、ステップ930では、視野において、アプリケーションに関与しておらず、ディスプレイ上の仮想空間においてアバターを制御していない少なくとも一人の追加の人を追跡することを伴う。少なくとも一人の人を追跡することによって、判断ステップ932において、この少なくとも一人の追加の人の行動に関して既定の規準が満たされたことが示された場合、ステップ934において、アプリケーションの視覚出力および/または可聴出力を変更する。既定の規準は、少なくとも一人の追加の人が、アプリケーションに対する関心レベルが高くなったことを示すように動くこと、またはアプリケーションに対する関心が高くなったことを示す音響(例えば、応援、拍手)を発することを含むことができる。
【0104】
[0134] 図9eは、一人の人が、アプリケーションに関与している他の人と代わるときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。ステップ940において、第1の人がプロファイルおよびアバターを用いてアプリケーションに関与する。ステップ942において、第2の人が関与する意図を有し、第2の人が離脱する意図を有する。ステップ944において、第2の人が、第1の人によって用いられたのと同じプロファイルおよびアバターを用いて、アプリケーションに関与する。この場合、仮想空間において同じ状態にあるアバターの制御が、第2の人によって引き継がれる。例えば、ゲーム・アプリケーションにおいて、第1の人によって達成された同じスコアまたは進展レベルを第2の人に受け渡して、連続性を維持する。これは、第2の人に対して異なるアバターやプロファイルを用いるのとは対照的である。また、スコアまたは進展レベルというような他のプロファイル・データーの連続性を維持しつつ、第2の人に新たなアバターを与えることも可能である。他の可能性は、新たなアバターの連続性を維持するが、異なるプロファイル・データーを用いることである。例えば、第2の人は、スコアをリセットするが、第1の人と同じアバターを用いて新たなゲームを開始することができる。
【0105】
[0135] 例えば、図10eを参照すると、人1024が、ディスプレイ1040上でアバター1042を制御することによって、アプリケーションに関与する(例えば、人1024は左腕を上げ、アバター1042は対応する腕を上げる)。一例として、このアバターは、人1024の特定形状に対応しない汎用的な外観を有する。第2の人1022は、視野の後ろに向かって立っており、関与しない意図を示す。図10fにおいて、第1の人1024が後方に動いて離脱する意図を示し、第2の人1022は前方に動いて、関与する意図を示すので、第2の人の動きがこれよりディスプレイ1050においてアバター1042を制御するために用いられる(例えば、人1022が右腕を上げ、アバター1042が対応する腕を上げる)。
【0106】
[0136] この例では、一度に一人のプレーヤーが関与し、プレーヤーの交換が行われる。他の例では、一度に多数のプレーヤーが関与し、プレーヤーの交換はこれらのプレーヤーの一人以上に対して行われる。
【0107】
[0137] アプリケーション自体も、人の関与する意図を判断する際に要因の1つとなることもあり得る。例えば、プレーヤーが一人のアプリケーションでは、新たなアバターが既存のアバターに加入できない。第2の人が第1の人に代わるためには、恐らくは、第2の人による更に強い、更に確率が高い関与する意図、および第1の人による更に強い離脱する意図が必要になる場合もある。場合によっては、第2の人が関与する強い意図を有していても、第1の人が離脱する意図を有さない限りは、無視される。
【0108】
[0138] 図10aは、一人の人がアプリケーションに関与しており、他の人がこのアプリケーションに関与していない一例を示す。以前に論じたように、視野の中にいる人でも、必ずしもアプリケーションに関与する意図があるとは限らない。更に、視野の外側にいる人でも、アプリケーションに関与する意図がある場合もある。しかしながら、この意図は、この人が視野の中に入るまで、この人の画像データーから判断することができない。恐らく、オーディオ・データーを用いれば、この場合の意図を判断することができる。
【0109】
[0139] ディスプレイ1000は、アバター1025が路上1008で立っている仮想世界(virtual word)の一例を示す。アバター1025は、人1024の形状に対応する形状を有する。代表的レンズ1012を有する深度カメラ・システム1010が設けられ、破線1019と1020との間に対応する視野1021がある。一人の人1022が視野の外側におり、したがって、深度カメラ・システム1010によって視覚的に検出されていない。他の人1028が椅子1030に座っている。他の人1024が、深度カメラ・システムに向かって立っている。他の人1026が、視野を横切って歩いている。既に論じた種々の考慮に基づいて、人1022は、彼または彼女の位置が視野の外側にあることに基づいて、アプリケーションに関与する意図があるとはみなされない可能性が高く、存在していると認識されることすらないかもしれない。人1028も、同様に、視野1021の後方および横に向いている彼または彼女の位置に基づいて、そして、構えが座っている構えであり、身体の側面が深度カメラ・システムに向いていることに基づいて、アプリケーションに関与する意図があると見なされる可能性が高い。
【0110】
[0140] 人1024は、視野1021の中央にある彼または彼女の位置、そして深度カメラ・システムに向いており胸を張っている構え、更に、1本の腕を横腹まで上げている動きに基づいて、アプリケーションに関与する意図があると見なされる可能性が高い。人1024が関与すると、アバター1025の動きを、人1024の動きに対応して、アプリケーションによって設定することができる。
【0111】
[0141] 人1026は、視野1021の横を向いている彼または彼女の位置に基づいて、そして身体が深度カメラ・システムから逸れる方向に向いている構えに基づいて、更には人が視野を横切って、視野の境界1020に向かって動いている動きに基づいて、アプリケーションに関与する意図があると見なされない可能性が高い。
【0112】
[0142] 尚、深度カメラ・システムおよび/または関連付けられている計算環境は、一人または多数の人の意図を、例えば、毎秒多数回繰り返し判断することができるので、しかるべき変化を素早く検出し、それに応じてアプリケーションを調節することができる。例えば、余りに頻繁な変化を避けるために、フィルタリングおよび平均化を用いて、結果を平滑化することができる。
【0113】
[0143] 図10bは、二人の人が1つのアプリケーションに関与しており、ディスプレイ上の仮想空間の共通視点を有するときの表示例を示す。ディスプレイ1002では、図10aからの人1024に、以前は視野の外側にいた人1022が加入する。既に論じた種々の要因に基づいて、人1022はアプリケーションに関与する意図があると判断される。その結果、対応するアバター1023が、人1024のアバター1025と並んで、ディスプレイ1002上に表示される。この場合、ディスプレイは、図8bのステップ814と関連付けて既に論じたように、人1022および1024に対して仮想空間の共通視点を与える。
【0114】
[0144] 図10cは、 二人の人が1つのアプリケーションに関与しており、ディスプレイ上の仮想空間の異なる視点を有するときの表示例を示す。図8bのステップ816と関連付けて既に論じたように、ディスプレイ1004には、別個の表示領域1005および1006がアバター1023および1025に与えられており、各表示領域において異なる視点またはカメラ・アングルから仮想空間が見られる。例えば、表示領域1006の視点は、図10bにおける場合とほぼ同じである。しかしながら、表示領域1005の視点は、図10bの表示領域1002とは全く異なっている。尚、アバター1023および1025は同じ仮想空間にい続けることを注記しておく。例えば、これらは双方共道路1008上に立っている。しかしながら、表示領域1005の視点は逸れて、丘の上に家1007がある道路側を見ており、一方表示領域1006の視点は道路を見下ろし続ける。
【0115】
[0145] 随意なこととして、これらの表示領域は、完全に異なる仮想空間または区分された場面をそれぞれの表示領域において与えることができる。これらの表示領域は、異なるアプリケーションの仮想空間を与えることでさえも可能である。
【0116】
[0146] 先に論じたように、表示領域1005および1006の相対的な位置は、人1022および1024の相対的な位置に対応することができる。他の選択肢は、人が視野に入って来た方向に基づいて、その人に合わせて表示領域を与えることである。例えば、人1022は視野に左側から入ることができ、この場合、図10cの構成が与えられる。
【0117】
[0147] 図10dは、図10cの表示領域に対して、人が物理空間における位置を交換したときに、表示領域が交換される分割画面表示の一例を示す。図9cと関連付けて既に論じたように、人1022が人1024の左側から右側に移動した場合、表示領域1005および1006はそれに対応して交換される。これによって、人々が視野中を動き回っても、人々がアプリケーションに関与するのが一層容易となる。何故なら、人々は彼らに関心がある表示領域に物理的に近くなり、この表示領域と整列されるからである。
【0118】
[0148] 図10aから図10fは、モーション・キャプチャー・システムの視野において追跡される人々の身体の例を示し、追跡は視野において人の身体を区別することを含む。
【0119】
[0149] 本明細書における以上の技術の詳細な説明は、例示および説明に限って提示したに過ぎない。これで全てであることや、本技術を開示した通りの形態に限定することは意図していない。以上の教示に照らし合わせれば、多くの変更や変更が可能である。記載した実施形態は、本技術の原理およびその実用的用途を最良に説明するために選ばれたのであり、これによって他の当業者が、想定される個々の使用に適するように、本技術を種々の実施形態においてそして種々の変更を伴って、最良に利用することを可能にする。本技術の範囲は、添付されている特許請求の範囲によって定義されることを意図している。
【背景技術】
【0001】
[0001] モーション・キャプチャー・システムは、物理的空間における人または他の物体の位置および動きに関するデーターを得て、このデーターを計算システムにおけるアプリケーションへの入力として用いることができる。軍隊、娯楽、スポーツ、医療目的のためというような、多くのアプリケーションが可能である。例えば、人のモーションを3d人間骨格モデルにマッピングし、動画化したキャラクターまたはアバターを作成するために用いることができる。光学システムは、可視光および不可視光、例えば、赤外線を用いるものを含み、視野において人の存在を検出するためにカメラを用いる。検出において補助するために人にマーカーを付けることができるが、マーカーのないシステムも開発されている。システムの中には慣性センサーを用いるものもあり、この慣性センサーは、動きを検出すべき人によって携行されるか、またはこの人に取り付けられる。例えば、ビデオ・ゲーム・アプリケーションの中には、ユーザーがワイヤレス・コントローラーを保持し、このワイヤレス・コントローラーが、ゲームをプレーしている間の動きを検出できるものもある。しかしながら、人がアプリケーションとより一層自然に相互作用することを可能にするためには、一層の改良が必要である。
【発明の概要】
【0002】
[0002] モーション・キャプチャー・システムを用いる物理的空間においてアプリケーションと相互作用するために、ユーザーの意図を認識するためのプロセッサー実装方法、モーション・キャプチャー・システム、および有形コンピューター読み取り可能ストレージを提供する。
【0003】
[0003] モーション・キャプチャー・システムによって提供される娯楽またはその他の体験のアクセス可能性を最大にするために、僅かな明示的行為によってまたは明示的行為を全く行うことなく、その体験にログインすることまたはその体験からログアウトすることによって、人がその体験に入るためおよびその体験から離れるための、簡素化された自動技法を提供する。人がモーション・キャプチャー・システムにおいて単に起き上がりプレーし始めること、プレーを終了するときに歩いて立ち去ること、彼または彼女が止めたところからプレーを再開するために再度戻って来ることを可能にする。人からの位置、移動、姿勢、および/または音声データーに基づいて、この人がアプリケーションに関与(engage)しようとする意図、アプリケーションから離脱(disengage)しようとする意図を判定する。更に、モーション・キャプチャー・システムの視野内にいる観戦者のような、他の人の意図も検出することができる。
【0004】
[0004] 一実施形態では、モーション・キャプチャー・システムにおいてアプリケーションに関与しようとする人の意図を認識するためのプロセッサー実装方法を提供する。この方法は、モーション・キャプチャー・システムの視野内においてこの人の身体を追跡するステップを含む。この追跡は、骨格モデルを用いて人の動きを識別することによってというようにして、視野においてこの人を区別する。この追跡に基づいて、本方法は、この人は第1の時点ではアプリケーションに関与する意図がないが、第2の時点ではアプリケーションに関与する意図があると判断する。人がアプリケーションに関与する意図があるとき、彼または彼女はこのアプリケーションに関与することを許される。この関与を容易にするために種々の策が講じられ、これによって、キーボードまたはその他の手動入力デバイス上においてパスワードおよびログイン・ユーザーidを入力するというような、人が手作業で入力を与える必要性はいずれも軽減される。具体的には、プロファイルおよびアバターを自動的に生成し、人と関連付けることができる。アバターは、ディスプレイ上における仮想空間に表示することができる。人がアバターを制御するためにこの人の身体を動かすことによってアプリケーションに関与するに連れ、視野における人の身体のその後の追跡に基づいて、表示が更新される。
【0005】
[0005] この摘要は、詳細な説明の章において以下で更に説明する概念から選択したものを紹介するために、設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使用されることを意図するのでもない。
【図面の簡単な説明】
【0006】
【図1a】図1aは、ユーザーがボクシングの試合をシミュレートするアプリケーションと相互作用する、モーション・キャプチャー・システムの一実施形態例を示す。
【図1b】図1bは、ユーザーがボクシングの試合をシミュレートするアプリケーションと相互作用する、モーション・キャプチャー・システムの一実施形態例を示す。
【図2】図2は、図1aのモーション・キャプチャー・システム10のブロック図例を示す。
【図3】図3は、図1aのモーション・キャプチャー・システムにおいて用いることができる計算環境のブロック図例を示す。
【図4】図4は、図1aのモーション・キャプチャー・システムにおいて用いることができる計算環境の別のブロック図例を示す。
【図5】図5は、人がモーション・キャプチャー・システムと相互作用することを可能にする方法を示す。
【図6a】図6aは、図5のステップ500において記述したような、人の動きを追跡する方法例を示す。
【図6b】図6bは、図6aのステップ608において記述したような、人のモデル例を示す。
【図6c】図6cは、図6aのステップ608において記述したような、人の他のモデル例を示す。
【図7a】図7aは、図5のステップ5において記述したように、人がアプリケーションに関与する意図があるか否か判断するための方法例を示す。
【図7b】図7bは、図7aのステップ700において論じたような、既定の位置に対して人の位置を評価する視野の一例を示す。
【図7c】図7cは、図7aのステップ700において論じたような、他の人に対して人の位置を評価する視野の一例を示す。
【図7d】図7dは、 図7aのステップ700において論じたような、人の位置を評価する視野の一例を示す。
【図8a】図8aは、図5のステップ504において記述したように、人がアプリケーションに関与するのをしやすくする方法例を示す。
【図8b】図8bは、図5のステップ504において記述したように、他のユーザーが現在アプリケーションに関与しているときに、人がアプリケーションに関与しやすくする方法例を示す。
【図9a】図9aは、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。
【図9b】図9bは、人がアプリケーションから離脱し、次いで再度このアプリケーションに関与するときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。
【図9c】図9cは、図5のステップ506において記述したように、そして図8bの方法にしたがって、プレーヤーがモーション・キャプチャー・システムの視野において位置を交換したときにおいて、アプリケーションに関与している間人を監視する方法例を示す。
【図9d】図9dは、アプリケーションに関与していない追加の人の追跡に基づいて、アプリケーションの出力を変更するときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。
【図9e】図9eは、一人の人が、アプリケーションに関与している他の人と代わるときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。
【図10a】図10aは、一人の人がアプリケーションに関与しており、他の人がこのアプリケーションに関与していない一例を示す。
【図10b】図10bは、二人の人が1つのアプリケーションに関与しており、ディスプレイ上の仮想空間の共通視点を有するときの表示例を示す。
【図10c】図10cは、二人の人が1つのアプリケーションに関与しており、ディスプレイ上の仮想空間の異なる視点を有するときの表示例を示す。
【図10d】図10dは、図10cの表示領域に対して、人が物理空間における位置を交換したときに、表示領域が交換される分割画面表示の一例を示す。
【図10e】図10eは、第1の人がプロファイルおよびアバターを用いてアプリケーションに関与しているときの表示例を示す。
【図10f】図10fは、第2の人が、プロファイルおよびアバターを用いてアプリケーションに関与している第1の人と代わるときに、図10eに続く表示例を示す。
【発明を実施するための形態】
【0007】
[0031] 人または人のグループがモーション・キャプチャー・システムにおいてアプリケーションと容易に相互作用することを可能にする種々の技法を提供する。深度カメラ・システムは、物理的空間における人の位置および動きを追跡し、これらを評価してこの人がアプリケーションに関与する、例えば、相互作用する意図があるか否か判断することができる。物理的空間からのオーディオ入力というような追加情報も用いることができる。場合によっては、人の動きまたは位置を、視野の中にいる他の一人以上の人について評価することもある。更に、アプリケーションにおいてある人のアバターをいつ活性化すべきか、そして人が現在アプリケーションに関与しているか否か反映するためにいつ表示を変更すべきか判断するための技法も提供する。人が異なる時点においてアプリケーションに関与するとき、この人が連続性を失うことなくこの関与を継続できるように、情報を格納する。例えば、人が彼または彼女の進展およびゲームにおいて費やした時間に基づいてスコアを得るまたはある種のパワーを獲得するゲームのようなアプリケーションでは、人は、既になされた進展を失うことなく、プレーを再開することができる。
【0008】
[0032] 図1aおよび図1bは、人18が、ボクシングの試合をシミュレートするアプリケーションと相互作用するモーション・キャプチャー・システム10の一実施形態例を示す。モーション・キャプチャー・システム10は、人18のような人間ターゲットを認識、分析、および/または追跡するために用いられる。人間ターゲットを、ユーザーまたはプレーヤーと呼ぶこともある。
【0009】
[0033] 図1aに示すように、モーション・キャプチャー・システム10は、コンピューター、ゲーミング・システムまたはコンソール等というような、計算環境12を含むことができる。計算環境12は、ハードウェア・コンポーネントおよび/またはソフトウェア・コンポーネントを含み、教育および/または娯楽目的というようなアプリケーションを実行することができる。
【0010】
[0034] 更に、モーション・キャプチャー・システム10は深度カメラ・システム20も含むことができる。深度カメラ・システム20は、例えば、人18のような一人以上の人を視覚的に監視して、この人によって行われるジェスチャーおよび/または動きを取り込み、分析し、追跡して、アバターまたは画面上のキャラクターを動画化する(animate)というように、アプリケーション内において1つ以上の制御または動作を実行することができるようにするために用いることができるカメラとすることができる。これについては、以下で更に詳しく説明する。
【0011】
[0035] モーション・キャプチャー・システム10は、テレビジョン、モニター、高品位テレビジョン(HDTV)等というような、視覚および聴覚出力をユーザーに提供するオーディオビジュアル・デバイス16に接続することができる。また、オーディオ出力は、別個のデバイスを通じて提供することもできる。オーディオビジュアル・デバイス16を駆動するために、計算環境12は、グラフィクス・カードのようなビデオ・アダプター、および/またはアプリケーションと関連付けられたオーディオビジュアル信号を供給するサウンド・カードのようなオーディオ・アダプターを含むことができる。オーディオビジュアル・デバイス16は、例えば、S−ビデオ・ケーブル、同軸ケーブル、HDMIケーブル、DVIケーブル、VGAケーブル等を通じて、計算環境12に接続することができる。
【0012】
[0036] 深度カメラ・システム20を用いて人18を追跡すると、この人のジェスチャーおよび/または動きを取り込んで、アバターまたは画面上キャラクターを動画化するために用いたり、および/または計算環境12によって実行されているアプリケーションに対する入力制御として解釈することができる。つまり、一実施形態例によれば、ユーザー18は彼または彼女の身体を動かしてアプリケーションを制御すること、および/またはアバターまたは他の画面上キャラクターを動画化することができる。
【0013】
[0037] 一例として、アプリケーションはボクシング・ゲームとすることができ、このゲームに人18が参加し、このゲームにおいて、オーディオビジュアル・デバイス16はボクシングの対戦相手38の視覚表現を人18に提示する。また、計算環境12は、オーディオビジュアル・デバイス16を用いてプレーヤー・アバター40の視覚表現を与えることもできる。プレーヤー・アバター40は、人を表し、その人が彼または彼女の体の動きによってプレーヤー・アバター40を制御することができる。
【0014】
[0038] 例えば、図1bに示すように、人18は、物理的空間、例えば、人が立っている部屋においてパンチを繰り出して、ボクシング・リングを含む仮想空間においてプレーヤー・アバター40にパンチを繰り出させることができる。つまり、一実施形態例によれば、モーション・キャプチャー・システム10の計算環境12および深度カメラ・システム20は、物理的空間における人18のパンチを認識し分析するために用いることができ、このパンチが、ボクシングの試合をシミュレートするアプリケーションへの入力として解釈され、仮想空間においてプレーヤー・アバター40を制御することができるようにする。
【0015】
[0039] また、人18による他の動きも、軽く叩く、行ったり来たりする、あちこち動き回る、防御する、ジャブする、または種々の異なる力のパンチを出すように制御するというように、プレーヤー・アバターを動画化するために用いられる他の制御または動作として解釈することができる。更に、動きの中には、プレーヤー・アバター40を制御する以外の動作に対応することもできる制御として解釈してもよい場合もある。例えば、一実施形態では、プレーヤーは、動きを用いて、ゲームを終了する、一時停止する、またはセーブする、レベルを選択する、高スコアを見る、友人と通信する等を行うこともできる。プレーヤーは、動きを用いて、主ユーザー・インターフェースからゲームまたは他のアプリケーションを選択することもできる。つまり、ユーザー18の動きの最大範囲が利用可能であり、使用し、アプリケーションと相互作用するために適した方法であればいずれでも、分析することができる。
【0016】
[0040] 人は、アプリケーションと相互作用するときに、プロップのような物体を保持することができる。このような実施形態では、人および物体の動きを用いて、アプリケーションを制御することができる。ラケットを持っているプレーヤーの動きを追跡し、テニス・ゲームをシミュレートするアプリケーションにおいて画面上のラケットを制御するために用いることができる。他の実施形態例では、プラスチック製の刀のようなおもちゃの武器を持っているプレーヤーの動きを追跡し、海賊船を示すアプリケーションの仮想空間において対応する兵器を制御するために用いることができる。
【0017】
[0041] モーション・キャプチャー・システム10は、更に、ターゲットの動きを、娯楽やレジャーを目的とするゲームや他のアプリケーションの範囲の外側にあるオペレーティング・システムおよび/またはアプリケーション制御として解釈するために用いることもできる。例えば、オペレーティング・システムおよび/またはアプリケーションの事実上あらゆる制御可能な態様を、人18の動きによって制御することができる。
【0018】
[0042] 図2は、図1aのモーション・キャプチャー・システム10のブロック図例を示す。深度カメラ・システム20は、例えば、飛行時間、構造化光、立体画像などを含む任意の適した技法によって、深度値を含むことができる深度画像を含む深度情報と共にビデオを取り込むように構成することができる。深度カメラ・システム20は、深度情報を「Zレイヤー」、または深度カメラからその視線に沿って延びるZ軸に対して垂直となることができるレイヤーに編成することができる。
【0019】
[0043] 深度カメラ・システム20は、物理空間における場面の深度画像を取り込む深度カメラのような、画像カメラ・コンポーネント22を含むことができる。深度画像は、取り込まれた場面の二次元(2D)画素エリアを含むことができ、この2D画素エリアにおける各画素は、画像カメラ・コンポーネント22からの直線距離を表す、関連深度値を有する。
【0020】
[0044] 画像カメラ・コンポーネント22は、赤外線(IR)発光コンポーネント24、三次元(3D)カメラ26、および場面の深度画像を取り込むために用いることができるRGBカメラ28を含むことができる。例えば、飛行時間分析では、深度カメラ・システム20のIR発光コンポーネント24は、物理空間に向けて赤外線光を放出することができ、次いでセンサー(図示せず)を用いて、その物理空間の中にある1つ以上のターゲットおよび物体の表面から散乱される光を、例えば、3Dカメラ26および/またはRGBカメラ28を用いて検出することができる。実施形態の中には、パルス状赤外線光を用いて、発信光パルスと対応する入射光パルスとの間の時間を測定し、深度カメラ・システム20から物理空間の中にあるターゲットまたは物体上における特定の場所までの物理的距離を判定するために用いることを可能にするとよい場合がある。発信光波の位相を着信光波の位相と比較して、位相ずれを判定することもできる。次いで、位相ずれを用いて、深度カメラ・システムからターゲットまたは物体上の特定の場所までの物理的距離を判定することができる。
【0021】
[0045] また、飛行時間分析を用いると、例えば、散乱光パルス撮像(shuttered light pulse imaging)を含む種々の技法で経時的な光の反射ビームの強度を分析することによって、深度カメラ・システム20からターゲットまたは物体上の特定の場所までの物理的距離を間接的に判定することができる。
【0022】
[0046] 他の一実施形態例では、深度カメラ・システム20は、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン光(即ち、格子パターン、縞パターンのような既知のパターンとして表示される光)を、例えば、IR発光コンポーネント24によって場面に向けて投射する。場面において1つ以上のターゲットまたは物体の表面に衝突したときに、それに応答して、パターンが変形する可能性がある。このようなパターンの変形を、例えば、3Dカメラ26および/またはRGBカメラ28によって取り込むことができ、次いで分析して、深度カメラ・システムからターゲットまたは物体上における特定の場所までの物理的距離を判定することができる。
【0023】
[0047] 他の実施形態によれば、深度カメラ・システム20は、2つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度からの場面を捕らえて、視覚的な立体像を得て、これを解明することによって深度情報を発生することができる。
【0024】
[0048] 深度カメラ・システム20は、更に、マイクロフォン30を含むことができる。マイクロフォン30は、音響波を受信し電気信号に変換するトランスデューサーまたはセンサーを含むことができる。加えて、マイクロフォン30を用いると、人によって供給される音響のようなオーディオ信号を受信し、計算環境12において実行されるアプリケーションを制御することができる。オーディオ信号は、発話された単語、ホイッスルの音、叫びおよびその他の発声というような人の声音(vocal sound)、ならびに拍手または足の踏みならしのような、音声以外の音響を含むことができる。
【0025】
[0049] 深度カメラ・システム20は、画像カメラ・コンポーネント22と動作的に通信することができるプロセッサー32を含むことができる。プロセッサー32は、標準化されたプロセッサー、特殊化されたプロセッサー、マイクロプロセッサー等を含むことができ、例えば、深度画像を受け取るための命令、この深度画像に基づいて3D画素の格子を発生するための命令、3D画素の格子に含まれる背景を除去して、人間の目標と関連のある1つ以上の3D画素を分離するための命令、分離された人間のターゲットの1つ以上の四肢の位置(location or position)を判定するための命令、1つ以上の四肢の位置に基づいてモデルを調節するための命令、あるいは他の適した命令であれば他のいずれでも実行することができる。これについては、以下で更に詳しく説明する。
【0026】
[0050] 更に、深度カメラ・システム20は、メモリー・コンポーネント34を含むことができる。メモリー・コンポーネント34は、プロセッサー32によって実行することができる命令、3DカメラまたはRGBカメラによって取り込まれた画像またはフレーム、あるいは任意の他の適した情報、画像等を格納することができる。一実施形態例によれば、メモリー・コンポーネント34は、ランダム・アクセス・メモリー(RAM)、リード・オンリー・メモリー(ROM)、キャッシュ、フラッシュ・メモリー、ハード・ディスク、またはあらゆる他の適した有形コンピューター読み取り可能記憶コンポーネントを含むことができる。メモリー・コンポーネント34は、バス21を通じて画像キャプチャ・コンポーネント22およびプロセッサー32と通信する別のコンポーネントとすることができる。他の実施形態によれば、メモリー・コンポーネント34をプロセッサー32および/または画像キャプチャ・コンポーネント22に統合してもよい。
【0027】
[0051] 深度カメラ・システム20は、通信リンク36を通じて、計算環境12と通信状態におくことができる。通信リンク36は、有線接続および/またはワイヤレス接続とすることができる。一実施形態によれば、計算環境12は、クロック信号を深度カメラ・システム20に通信リンク36を通じて供給することができる。このクロック信号は、深度カメラ・システム20の視野内にある物理空間からいつ画像データーを取り込むべきかを示す。
【0028】
[0052] 加えて、深度カメラ・システム20は、例えば、3Dカメラ26および/またはRGBカメラ28によって取り込まれた深度情報および画像、および/または深度カメラ・システム20によって発生することができる骨格モデルを、計算環境12に通信リンク36を通じて供給することができる。次いで、計算環境12は、このモデル、深度情報、および取り込まれた画像を用いて、アプリケーションを制御することができる。例えば、図2に示すように、計算環境12は、ジェスチャー・フィルターの集合体のような、ジェスチャー・ライブラリー190を含むことができ、各ジェスチャー・フィルターは、骨格モデルによって(ユーザーが動くに連れて)実行することができるジェスチャーに関する情報を含む。例えば、ジェスチャー・フィルターは、以下の各々に合わせて設けることができる。一方または両方の腕を上にまたは横まで上げる、腕をぐるぐると回転させる、鳥のようにある者の腕を叩く、前方、後方、または一方側に傾く、飛び上がる、踵を上げることによってつま先で立つ、足踏みをする、視野/物理空間内における異なる位置まで歩く等。検出された動きを各フィルターと比較することによって、人が実行した指定のジェスチャーまたは動きを識別することができる。どの程度まで動きが行われたかも判定することができる。
【0029】
[0053] 深度カメラ・システム20によって取り込まれた骨格モデルの形態のデーター、およびそれと関連付けられた動きを、ジェスチャー・ライブラリー190の中にあるジェスチャー・フィルターと比較して、いつユーザー(骨格モデルによって表現される)が1つ以上のジェスチャーを行ったのか特定することができる。これらの動きは、アプリケーションの種々の制御と関連付けることができる。
【0030】
[0054] また、計算環境12はプロセッサー192も含むことができる。プロセッサー192は、メモリー194に格納されている命令を実行してオーディオ−ビデオ出力信号をディスプレイ・デバイス196に供給し、更に本明細書において記載する他の機能を遂行する。
【0031】
[0055] 図3は、図1aのモーション・キャプチャー・システムにおいて用いることができる計算環境のブロック図例を示す。この計算環境は、1つ以上のジェスチャーまたはその他の動きを解釈し、それに応答してディスプレイ上において仮想空間を更新するために用いることができる。図1a、図1b、および図2に関して先に説明した計算環境12のような計算環境は、ゲーミング・コンソールのような、マルチメディア・コンソール100を含むことができる。マルチメディア・コンソール100は、レベル1キャッシュ102、レベル2キャッシュ104、およびフラッシュROM(リード・オンリー・メモリー)106を有する中央演算装置(CPU)101を有する。レベル1キャッシュ102およびレベル2キャッシュ104は、一時的にデーターを格納し、こうしてメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させる。CPU101は、1つよりも多いコア、したがって追加のレベル1およびレベル2キャッシュ102および104を有して設けることもできる。フラッシュROM106は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール100の電源をオンにしたときに、ブート・プロセスの初期段階中にロードされる。
【0032】
[0056] グラフィクス処理ユニット(GPU)108およびビデオ・エンコーダー/ビデオ・コデック(コーダー/デコーダー)114が、高速および高分解能グラフィクス処理のためにビデオ処理パイプラインを形成する。データーは、バスを通じて、GPU108からビデオ・エンコーダー/ビデオ・コデック114に伝達される。ビデオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、データーをA/V(オーディオ/ビデオ)ポート140に出力する。メモリー・コントローラー110がGPU108に接続されており、RAM(ランダム・アクセス・メモリー)のような、種々のタイプのメモリー112にプロセッサーがアクセスし易くなる。
【0033】
[0057] マルチメディア・コンソール100は、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モジュール、ケーブル・モデム等を含む広範囲の種々の有線またはワイヤレス・アダプター・コンポーネントのいずれでもよい。
【0034】
[0058] システム・メモリー143は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ144が設けられており、DVD/CDドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブを備えることができる。メディア・ドライブ144は、マルチメディア・コンソール100の内部にあっても外部にあってもよい。アプリエーション・データーには、実行、再生等のためにマルチメディア・コンソール100が、メディア・ドライブ144を介してアクセスすることができる。メディア・ドライブ144は、シリアルATAバスまたはその他の高速接続のようなバスを通じて、I/Oコントローラー120に接続されている。
【0035】
[0059] システム管理コントローラー122は、マルチメディア・コンソール100の利用可能性を確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット123およびオーディオ・コデック132は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオ・データーは、通信リンクを通じて、オーディオ処理ユニット123とオーディオ・コデック132との間で伝達される。オーディオ処理パイプラインは、外部オーディオ・プレーヤーまたはオーディオ処理能力を有するデバイスによる再生のために、データーをA/Vポート140に出力する。
【0036】
[0060] フロント・パネルI/Oサブアセンブリ130は、電力ボタン150およびイジェクト・ボタン152の機能をサポートするだけでなく、マルチメディア・コンソール100の外面上に露出する任意のLED(発光ダイオード)またはその他のインディケーターもサポートする。システム電源モジュール136が、マルチメディア・コンソール100のコンポーネントに電力を供給する。ファン138は、マルチメディア・コンソール100内部にある回路を冷却する。
【0037】
[0061] CPU101、GPU108、メモリー・コントローラー110、およびマルチメディア・コンソール100内部にある種々のその他のコンポーネントは、1系統以上のバスを通じて相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、周辺バス、および種々のバス・アーキテクチャのいずれかを用いるプロセッサー・バスまたはローカル・バスが含まれる。
【0038】
[0062] マルチメディア・コンソール100の電源を投入すると、システム・メモリー143からメモリー112および/またはキャッシュ102、104にアプリケーション・データーをロードし、CPU101において実行することができる。アプリケーションは、グラフィカル・ユーザー・インターフェースを提示することができる。このグラフィカル・ユーザー・インターフェースは、マルチメディア・コンソール100において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび/またはメディア・ドライブ144内に収容されている他のメディアをメディア・ドライブ144から起動または再生して、マルチメディア・コンソール100に追加の機能を設けることもできる。
【0039】
[0063] 単にシステムをテレビジョンまたはその他のディスプレイに接続することによって、マルチメディア・コンソール100を単独システムとして動作させることができる。この単独モードでは、マルチメディア・コンソール100は、一人以上のユーザーがシステムと相互作用を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワーク・インターフェース124またはワイヤレス・アダプター148によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディア・コンソール100を更に大きなネットワーク・コミュニティーにおける関与体(participant)として動作させることもできる。
【0040】
[0064] マルチメディア・コンソール100の電源を投入すると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー(例えば、16MB)、CPUおよびGPUサイクル(例えば、5%)、ネットワーキング帯域幅(例えば、8kbs)等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。
【0041】
[0065] 特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを含めるのに十分大きいことが好ましい。確保されたCPU使用枠(usage)がシステム・アプリケーションによって用いられない場合、アイドルのスレッドがいずれかの未使用サイクルを消費するように、CPUの確保は一定であることが好ましい。
【0042】
[0066] GPUの確保に関して、GPU割り込みを用いることによって、システム・アプリケーション(例えば、ポップアップ)によって発生される軽量メッセージ(lightweight message)を表示して、ポップアップをオーバーレイにレンダリングするコードをスケジューリングする。オーバーレイに用いられるメモリー量は、オーバーレイのエリア・サイズに依存し、オーバーレイは画面の解像度と共にスケーリングする(scale)ことが好ましい。コンカレント・システム・アプリケーションによってフル・ユーザー・インターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更しTVの同期を取り直す必要性をなくすように、この解像度を設定するためにスケーラーを用いるとよい。
【0043】
[0067] マルチメディア・コンソール100がブートして、システム・リソースを確保した後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステム・リソースの内部で実行する1組のシステム・アプリケーションの中にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、マルチメディア・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点におよび所定の間隔でCPU101において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソールにおいて実行しているゲーミング・アプリケーションに対するキャッシュ分裂(disruption)を最少に抑えるためにある。
【0044】
[0068] コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、オーディオ処理を非同期にゲーミング・アプリケーションにスケジューリングする。マルチメディア・コンソール・アプリケーション・マネージャー(以下で説明する)は、システム・アプリケーションがアクティブのとき、マルチメディア・アプリケーションのオーディオ・レベル(例えば、無音化、減衰)を制御する。
【0045】
[0069] 入力デバイス(例えば、コントローラー142(1)および142(2))は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されるリソースではないが、システム・アプリケーションとマルチメディア・アプリケーションとの間で切り換えられて、各々が対象のデバイスを有するようにする。アプリケーション・マネージャは、好ましくは、ゲーミング・アプリケーションの知識を用いずに入力ストリームの切換を制御し、ドライバーはフォーカス・スイッチ(focus switches)に関する状態情報を維持する。コンソール100は、カメラ26および28を含む、図2の深度カメラ・システム20から追加の入力を受け取ることができる。
【0046】
[0070] 図4は、図1aのモーション・キャプチャー・システムにおいて用いることができる計算環境の他のブロック図例を示す。この計算環境は、1つ以上のジェスチャーまたはその他の動きを解釈し、それに応答してディスプレイ上における仮想空間を更新するために用いることができる。計算環境220は、コンピューター241を含む。コンピューター241は、通例、種々の有形コンピューター読み取り可能媒体を含む。これは、コンピューター241がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー222は、リード・オンリー・メモリー(ROM)223およびランダム・アクセス・メモリー(RAM)260のような揮発性および/または不揮発性メモリーの形態とした、コンピューター記憶媒体を含む。基本入出力システム224(BIOS)は、起動中のように、コンピューター241内のエレメント間におけるデーター転送を補助する基本的なルーティンを収容しており、通例ROM223内に格納されている。RAM260は、通例、演算装置259が直ちにアクセス可能であるデーターおよび/またはプログラム・モジュール、または現在これによって処理されているデーターおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図4は、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228を示す。
【0047】
[0071] また、コンピューター241は、その他のリムーバブル/非リムーバブル揮発性/不揮発性コンピューター記憶媒体も含むことができる。例えば、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ238、リムーバブル不揮発性磁気ディスク254からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ239、ならびにCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク253からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ240を含むことができる。この動作環境の一例において使用可能なその他のリムーバブル/非リムーバブル、揮発性/不揮発性有形コンピューター読み取り可能記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれる。ハード・ディスク・ドライブ238は、通例、インターフェース234のような非リムーバブル・メモリー・インターフェースを介してシステム・バス221に接続され、磁気ディスク・ドライブ239および光ディスク・ドライブ240は、通例、インターフェース235のようなリムーバブル・メモリー・インターフェースによって、システム・バス221に接続する。
【0048】
[0072] 先に論じ図4に示すドライブおよびそれらと連動するコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター241のその他のデーターを格納する。例えば、ハード・ディスク・ドライブ238は、オペレーティング・システム258、アプリケーション・プログラム257、その他のプログラム・モジュール256、およびプログラム・データー255を格納するように示されている。尚、これらの構成要素は、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム258、アプリケーション・プログラム257、その他のプログラム・モジュール256、およびプログラム・データー255は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザーは、キーボード251、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス252によって、コマンドおよび情報をコンピューター241に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース236を介して、演算装置259に接続されている。ユーザー入力インターフェース236は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)によって接続することも可能である。カメラ26、28を含む図2の深度カメラ・システム20は、コンソール100の追加入力デバイスを定めることができる。モニター242またはその他の形式の表示装置も、ビデオ・インターフェース232のようなインターフェースを介して、システム・バス221に接続されている。モニターに加えて、コンピューターは、スピーカー244およびプリンター243のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース233を通じて接続することができる。
【0049】
[0073] コンピューター241は、リモート・コンピューター246のような1つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター246は、パーソナル・コンピューター、サーバー、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター241に関して先に説明したエレメントの多くまたは全てを含むが、図4にはメモリー記憶装置247のみを示す。論理接続は、ローカル・エリア・ネットワーク(LAN)245およびワイド・エリア・ネットワーク(WAN)249を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては極一般的である。
【0050】
[0074] LANネットワーク環境で用いる場合、コンピューター241は、ネットワーク・インターフェースまたはアダプター237を介してLAN245に接続する。WANネットワーク環境で用いる場合、コンピューター241は、通例、モデム250、またはインターネットのようなWAN249を通じて通信を確立するその他の手段を含む。モデム250は、内蔵でも外付けでもよく、ユーザー入力インターフェース236またはその他の適切な機構を介してシステム・バス221に接続することができる。ネットワーク環境では、コンピューター241に関係付けて図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図4は、リモート・アプリケーション・プログラム248がメモリー・デバイス247に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを確立する他の手段も使用可能であることは認められよう。
【0051】
[0075] 図5は、モーション・キャプチャー・システムと相互作用することを人に可能にする方法を示す。ステップ500は、モーション・キャプチャー・システムの視野において人の動きおよび位置を追跡することを含む。ステップ500の更なる詳細については、図6a〜図6cに関連付けて説明する。判断ステップ502では、人がアプリケーションに関与する意図があるか否か判断する。ステップ502の更なる詳細については、図7a〜図7dおよび図10aに関連付けて説明する。概略的に、ステップ502では、指定された意図を人が有する確率を、1つ以上の変数に基づいて判断し、確率が十分に高い場合に、派生する動作をトリガーすることができる。
【0052】
[0076] 人が関与する意図がない場合、ステップ500の追跡が継続する。判断ステップ502が真である場合、ステップ504では、人がアプリケーションに関与し易くする。ステップ504の更なる詳細については、図8a、図8b、および図10b〜図10fと関連付けて説明する。ステップ506は、アプリケーションに関与している間この人を監視することを含む。ステップ506の更なる詳細については、図9a〜図9dと関連付けて説明する。
【0053】
[0077] 例えば、図5の方法では、人が最初に視野に入ったときというような第1の時点では、この人はアプリケーションと関与する意図がないが、この人が数秒間視野の中にいたときというような、その後の第2の時点においては、アプリケーションに関与する意図があると判断することができる。尚、人が最初に視野に入ったときに関与する意図が彼または彼女の気持ちの中に形成されていることもあるが、未だこの人を十分長い時間観察していないので、モーション・キャプチャー・システムはまだその意図を判断していないことを注記しておく。第1の時点においてアプリケーションがインアクティブ・モードである場合、第2の時点において、この人がアプリケーションと関与する意図があると判断したことに応答して、アクティブ・モードに設定することができる。インアクティブ・モードでは 例えば、黒い画面またはスクリーン・セーバー表示を与えることによって、アプリケーションの通常の視覚または聴覚出力を抑制することができ、一方アクティブ・モードでは、通常の視覚または聴覚出力を供給することができる。
【0054】
[0078] 図6aは、図5のステップ500において記述したような、人の動きを追跡する方法の一例を示す。この方法例は、例えば、図2から図4に関連付けて論じたような、深度カメラ・システム20および/または計算環境12、100、または220を用いて実現することができる。一人以上の人を走査して、骨格モデル、メッシュ人間モデルというようなモデルを発生することができ、または他の適した人間の表現であればいずれでも発生することができる。次いで、このモデルは、計算環境によって実行されるアプリケーションと相互作用するために用いることができる。走査してモデルを発生するのは、アプリケーションを開始または起動したときに行うことができ、あるいは走査される人のアプリケーションによって制御される他の時点において行うことができる。
【0055】
[0079] 人を走査して骨格モデルを発生することができ、ユーザー58の身体的動き(movement)または運動(motion)がリアル・タイム・ユーザー・インターフェースとして動作してアプリケーションのパラメータを調節および/または制御することができるように、この骨格モデルを追跡することができる。例えば、人の動きを追跡して、この追跡した動きを用いて電子ロール・プレーイング・ゲームにおいてアバターまたは他の画面上キャラクターを動かすこと、電子競走ゲームにおいて画面上の車両を制御すること、仮想環境において建物または物体の編成を制御すること、あるいはアプリケーションの他の適した制御であればいずれでも実行することができる。
【0056】
[0080] 一実施形態によれば、ステップ600において、深度情報を、例えば、深度カメラ・システムから受け取る。深度カメラ・システムは、1つ以上のターゲットを含むかもしれない視野を取り込むまたは観察することができる。一実施形態例では、深度カメラ・システムは、先に論じたように、飛行時間分析、構造化光分析、ステレオ画像分析などのようないずれかの適した技法を用いて、キャプチャー・エリアの中にある1つ以上のターゲットと関連のある深度情報を得ることができる。深度情報は、複数の被観察画素を有する深度画像を含むことができ、先に論じたように、被観察画素の各々は観察深度値を有する。
【0057】
[0081] 深度画像は、より少ない計算オーバーヘッドでより簡単に用いて処理することができるように、更に低い処理分解能にダウンサンプルするとよい。加えて、1つ以上の高分散および/またはノイズの多い深度値を、深度画像から除去するおよび/またはスムージングするとよい。深度情報からなくなった部分および/または除去された部分は、埋めることおよび/または再現することができ、および/または、深度情報を用いて、図6bおよび図6cと関連付けて論じた、骨格モデルのようなモデルを発生することができるように、受け取った深度情報に対して他のいずれかの適した処理を実行することができる。
【0058】
[0082] 判断ステップ604において、深度画像が人間ターゲットを含むか否かについて判定を行う。これは、深度画像の中にある各ターゲットまたは物体を塗りつぶし(flood fill)し、各ターゲットまたは物体をパターンと比較して、深度画像が人間ターゲットを含むか否か判断することを含むことができる。例えば、深度画像の選択されたエリアまたは点における画素の種々の深度値を比較して、先に説明したように、ターゲットまたは物体を定義することができるエッジを決定することができる。決定されたエッジに基づいて、Zレイヤーの適当なZ値で塗りつぶすことができる。例えば、決定されたエッジと関連のある画素、およびエッジ内にあるエリアの画素を互いに関連付けて、キャプチャー・エリアにおいてターゲットまたは物体を定義することができ、このターゲットまたは物体をパターンと比較することができる。これについては、以下で更に詳しく説明する。
【0059】
[0083] 判断ステップ604が真である場合、ステップ606を実行する。判断ステップ604が偽である場合、ステップ600において追加の深度情報を受け取る。
[0084] 各ターゲットまたは物体を比較するパターンは、人間の典型的な身体を集合的に定義する1組の変数を有する1つ以上のデーター構造を含むことができる。視野内にある、例えば、人間ターゲットおよび人間以外のターゲットの画素と関連のある情報を変数と比較して、人間ターゲットを識別することができる。一実施形態では、1組の中にある変数の各々に、身体部分に基づいて重み付けすることができる。例えば、パターンにおける頭部および/または肩というような種々の身体部分に関連付けることができる重み値は、脚部のような他の身体部分よりも大きくするとよい。一実施形態によれば、ターゲットを変数と比較してターゲットが人間であるか否か、そしてどのターゲットが人間であり得るか判断するときに、重み値を用いることができる。例えば、変数と、より大きな重み値を有するターゲットとの間に一致がある場合、より小さな重み値による一致よりも、ターゲットが人間である可能性が高くなるとするとよい。
【0060】
[0085] ステップ606は、人間ターゲットを走査して身体部分を求めることを含む。人間ターゲットを走査して、人の1つ以上の身体部分と関連のある長さ、幅等のような測定値を供給し、人の正確なモデルを得ることができる。一実施形態例では、人間ターゲットを分離することができ、1つ以上の身体部分を走査するために人間ターゲットのビットマスクを作成することができる。ビットマスクは、例えば、人間ターゲットをキャプチャー・エリアのエレメントにおいて他のターゲットまたは物体から分離できるように、人間ターゲットを塗りつぶすことによって製作することができる。次いで、このビットマスクを分析して1つ以上の身体部分を求め、人間ターゲットの骨格モデル、メッシュ人間モデルなどのようなモデルを発生することができる。例えば、一実施形態によれば、図6bおよび図6cと関連付けて論じるように、走査したビットマスクによって決定された測定値を用いて、骨格モデルにおける1つ以上の関節を定義することができる。1つ以上の関節は、人間の身体部分に対応することができる1つ以上の骨を定義するために用いることができる。
【0061】
[0086] 例えば、人間ターゲットのビットマスクの最上位を頭の天辺の位置と関連付けることができる。頭部の天辺を決定した後、ビットマスクを下方に走査して、首の位置、肩の位置等を次に決定することができる。例えば、走査されている位置におけるビットマスクの幅を、例えば、首、肩等と関連のある典型的な幅の閾値と比較することができる。代替実施形態では、以前に走査した位置であってビットマスクにおける身体部分と関連のある位置からの距離を用いて、首、肩などの位置を決定することができる。脚部、足などのような身体部分の一部は、例えば、他の身体部分の位置に基づいて計算することもできる。身体部分の値を決定するとき、その身体部分の測定値を含むデーター構造を作成する。このデーター構造は、深度カメラ・システムによって異なる時点において供給される多数の深度画像から平均した走査結果を含むことができる。
【0062】
[0087] ステップ608は、人間ターゲットのモデルを発生することを含む。一実施形態では、走査したビットマスクによって決定された測定値を用いて、骨格モデルにおける1つ以上の関節を定義することができる。1つ以上の関節は、人間の身体部分に対応する1つ以上の骨を定義するために用いられる。例えば、図6bは、図6aのステップ608において記述した人のモデル例620を示し、図6cは、図6aのステップ608において記述した人の他のモデル例630を示す。
【0063】
[0088] 一般に、各身体部分は、骨格モデルの関節および骨を定義する数学的ベクトルとして特徴付けることができる。身体部分は、関節において互いに対して動くことができる。例えば、前腕セグメント628は関節626および629に接続されており、上腕セグメント624は関節622および626に接続されている。前腕セグメント628は、上腕セグメント624に対して動くことができる。
【0064】
[0089] 1つ以上の関節は、これらの関節が人間の関節と身体部分との間における典型的な距離の範囲内に収まるまで調節して、一層正確な骨格モデルを発生することができる。更に、例えば、人間ターゲットと関連のある高さに基づいて、モデルを調節することもできる。
【0065】
[0090] ステップ610において、毎秒数回人の位置を更新することによってモデルを追跡する。ユーザーが物理空間において動くにつれて、骨格モデルが人を表すように、骨格モデルを調節するために深度カメラ・システムからの情報を用いる。即ち、1つ以上の力を骨格モデルの1つ以上の力受入面(force-receiving aspect)に加えて、物理空間内にある人間ターゲットの姿勢に一層密接に対応する姿勢に、骨格モデルを調節することができる。
【0066】
[0091] 一般に、人の動きを追跡するためには、知られている技法であればいずれでも用いることができる。
[0092] 図7aは、図5のステップ502において記述したように、人がアプリケーションに関与する意図があるか否か判断する方法例を示す。人の意図を判断するには、種々の要因を考慮することができる。これらの要因の1つ以上を用いることができる。更に、供給される要因は、アプリケーションに関与する意図、または関与しない意図(または離脱する意図)のいずれかを、関連があるが反対の概念として示すことができる。例えば、関与する意図の低い確率は、関与しない意図の高い確率と同等と考えられる。これらの要因は、例えば、毎秒多数回、数秒というような時間期間にわたって頻繁に評価すれば、人の意図を一層正確に理解することができる。
【0067】
[0093] ステップ700では、視野、例えば、部屋のような物理空間における人の位置を評価する。例えば、図7bは、人の位置が既定位置に対して評価される視野の一例を示す。点700は深度カメラを表し、線722および724は視野726の境界を表す。深度カメラの光軸即ちz軸、例えば、深度カメラが物理空間を見る方向の中心を延びる線を含む座標系を定義することができ、視野は通例光軸を中心に対称である。深度カメラがディスプレイと同じ方向に面する場合、光軸は一般にディスプレイの平面に対して垂直となる。z軸に対して垂直な交差軸(y軸)を定義することができる。第1ゾーン729は円形であり、半径r1、周囲728、およびz軸に沿った中心点727を有する。第2ゾーン731はドーナツ形即ち環状であり、内径r1、外径r2、内周728、外周730を有し、第1ゾーン729と同心円状であるか、または第1ゾーン729に隣接している。円形および同心円形ゾーンの使用は、一例に過ぎず、例えば、楕円、矩形、正方形等の他のゾーン形状も用いることができる。中心点734を有する円732は、アプリケーションに関与する意図を評価している人を収容する境界円筒を表す。人の中心点734は、中心点727から距離r3のところにある。境界ボックスまたは矩形を、境界円筒の代替として用いることができる。
【0068】
[0094] 例えば、人がアプリケーションと相互作用しようとする意図がある確率が高い位置、例えば、第1ゾーン729、アプリケーションと相互作用しようとする意図がある確率が中程度である位置、例えば、ゾーン731、あるいはアプリケーションと相互作用しようとする意図がある確率が低い、ゾーン729および731の外側にある視野762内の位置にいる可能性がある。これによって、アプリケーションと相互作用しようとする意図がある確率が最も高い位置、例えば、ゾーン729に対する人の位置に基づいて、位置に基づく確率測定を行うことができる。
【0069】
[0095] また、人の位置は、視野の中にいて現在アプリケーションに関与している他の人の位置に対して評価することもできる。例えば、アプリケーションに関与する意図がある人は、例えば、潜在的なチーム・メートまたはゲームにおける相手として、既にこのアプリケーションに関与している他の人の隣に立つことが考えられる。この人が、視野の中にいて既にアプリケーションに関与している他の人のそばにいる、または指定距離以内にいると判定することができる。例えば、図7cは、人の位置が他の人に対して評価される視野の一例を示す。ここで、中心点738を有する円736は、現在アプリケーションに関与している人を収容する境界円筒を表し、中心点734を有する円732は、アプリケーションに関与しようとする意図を評価されている人を収容する境界円筒を表す。軸744は、y軸に並行であり、中心点736を通過する。線740および742は、軸744に対して±αの角度で中心点738を通過する。線740および742の間において、人が円736によって表される人の側にいるまたはこの人と相並んでいると考えられる領域746を定義することができる。同様の領域を、人736の逆側にも定義することができる。d1は、中心点738から中心点734までの距離であり、円736および732によって描かれたそれぞれの人の間の距離を表す。あるいは、円736および732の円周間の最も短い距離である距離を定義することもできる。
【0070】
[0096] ここで、領域746(例えば、円736によって表される人の側)の中におり円732によって表される人には、円732によって表される人が領域746にいないときよりも、高い確率の関与しようとする意図を関連付けることができる。同様に、円732によって現れる人が、円736によって現れる人まで比較的近い距離d1にある領域746にいるときには、円732によって表される人が円738によって表される人まで比較的遠い距離にある領域746にいるときよりも、高い確率の関与しようとする意図を関連付けることができる。
【0071】
[0097] ステップ702では、人の構えまたは姿勢を評価する。例えば、人の身体が深度カメラに面しており、胸を張って深度カメラに向かっている(squared)場合***(例えば、図10bにおける人1022および1024)、この人がアプリケーションに関与する意図があることは、この人の身体がカメラに面しておらず、例えば、他の方向に向かって胸を張っている(例えば、図10aにおける人1026または1028)ときよりも確率が高くなる。この後者の場合、深度カメラはこの人の側面を見る。人が座っている姿勢(例えば、図10aにおける人1028)または横たわっている姿勢も同様に、アプリケーションに関与する意図を恐らくは示さない。同様に、胸の前で腕を組んでいる構えも関与する意図がないことを示すことができる。
【0072】
[0098] アプリケーション・コンテキストに特定的な関与しようとする意図の一例として、ヨガ運動に関するアプリケーションについて検討する。このアプリケーションでは、座る姿勢が、離脱する意図ではなく、関与する意図を示すことができる。更に、関与または離脱しようとする意図を判断する規準は、年齢、性別、身体的体力レベルまたは身体障害というような要因に基づいて調節することができる。例えば、ゆっくりした人の動きは、関与する意図であり得るが、動きが速い人では、そのようにならない。
【0073】
[0099] 特定の構えがどの位維持されたか判定するためにタイマーを用いることもできる。期間が長い程、関与または離脱する意図と深く関連付けることができる。
[0100] 構えに基づく確率測定は、アプリケーションに関与する意図がある確率が最も高い構えに対する人の構えに基づいて行うことができる。
【0074】
[0101] ステップ704では、視野における人の動きを評価する。例えば、人が素早く視野を横切って動いている場合(例えば、図10aにおける視野1021の中にいる人1026、または図7dにおいて円732によって表された人に対する矢印750の方向で表されるように)、この人は恐らく単に歩いて視野を通り過ぎただけであって、アプリケーションに関与する意図はない。また、人がディスプレイから遠ざかるように動いている場合(例えば、図7dにおいて円732によって表された人に対する矢印752の方向に)、ユーザーは恐らくアプリケーションに関与する意図はない。更に、人が、彼または彼女の腕を回しているとき(例えば、図10aにおいて人1024によって表されるように)、または一方の足から他方に体重を移動させているときというように、ほぼ1つの位置にいるが動いているように見える場合、これは、アプリケーションに関与しようとする意図がある確率の上昇と関連付けることができる。同様に、人がほぼ1つの位置にいるが、ほぼ静止しているように見える場合、これは、アプリケーションに関与しようとする意図がある確率の低下と関連付けることができる。更に、動きと位置の要因を関連付けることができ、例えば、関与する意図がある確率が高い位置に向かう動きは、関与する意図がある確率が高いことの印とすることができる。
【0075】
[0102] 人によって行われたジェスチャーも、動きの形態として考慮することができる。例えば、ユーザーが彼または彼女の腕を上げて深度カメラに受かって振って、この人が関与する意図があることを示すことができる。更に、意図に関するある種のジェスチャーは、アプリケーション・コンテキストに特定的であるとすることができ、例えば、コンテキスト感応ジェスチャーとすることができる。例えば、関与または離脱する意図を知らせるものとして予め定義されたジェスチャーがあってもよい。ジェスチャーは、動き(例えば、人の腕を横腹まで上げて次いでそれを下ろす動作を検出した場合)に基づいて、または静止位置(人の腕が横腹まで上げられたことを検出した場合)に基づいて識別することができる。
【0076】
[0103] 動きに基づく確率測定は、アプリケーションに関与する意図がある確率が最も高い動きに対する人の動きに基づいて行うことができる。
[0104] ステップ706では、人の音声データーを評価する。一般に、人の声音は、発話した単語、口笛、叫び、およびその他の発声を含むことができる。手を叩くというような非声音も検出することができる。指向性マイクロフォンを随意に用いると、音響が検出された方向を検出し、それを検出された人の位置と相関付けて、人がアプリケーションに関与する意図があることの確率の更に一層信頼性のある尺度を得ることができる。人が視野の外側にいても、人の意図を判定するためには、音声データーだけでも十分なこともあり得る。
【0077】
[0105] 音声データーの存在は、人がアプリケーションに関与する意図があることの高い確率と相関付けることができる。更に、音声データーの音量またはラウドネスを、人がアプリケーションに関与する意図がある高い確率と相関付けることができる。また、「開始」または「準備完了」というようなコマンドがアプリケーションに関与する意図を示すように、発話(speech)も検出することができる。つまり、人がアプリケーションに関与する意図があると判断する際、その人の音声データーを処理し、アプリケーションに関与する意図を示す発話を検出し、および/またはアプリケーションに関与する意図を示す音声音量を検出することを含むことができる。
【0078】
[0106] トリビア・ゲーム・ショー・アプリケーション(trivia game show application)の例では、プレーヤーは通常比較的静止しており、恐らくソファに座って質問に答える。この場合、新たな音声の存在の検出を、新たな人による関与する意図として評価することができる。同様に、以前に認識したある人の音声がある時間期間なくなった場合、今は黙っているその人による離脱の意図として評価することができる。
【0079】
[0107] 音声に基づく確率測定は、アプリケーションに関与する意図がある確率が最も高い音声データーに対する人の音声データーに基づいて行うことができる。
[0108] 一旦ある人がアプリケーションに関与する意図があると判断したなら、次に論ずるように、この関与をしやすくする。尚、人がアプリケーションに関与する意図があると判断したとき、または離脱するときというような、他のしかるべき時点において、しかるべきステータス情報をフィードバックとして提供できることを注記しておく。例えば、人がアプリケーションに関与する意図があると判断されたときには、呼び鈴の音というようなオーディオ・メッセージをアプリケーションによって発生することができ、人がアプリケーションから離脱する意図があると判断されたときには、アプリケーションによってドアを閉める音を発生することができる。
【0080】
[0109] アイコンのような視覚メッセージも、邪魔にならないディスプレイの横または下の領域にというように、ディスプレイ上に与えることができる。視覚メッセージは、現在関与している人の人数、および人の関与が保留されたとき(図9a参照)や、人が離脱したとき(図9b参照)のような、ステータスの変化を示すことができる。仮想空間に加入するときには新たなアバターが徐々に現れ、去りつつあるアバターは徐々に消えて行くように、視覚効果を付けることもできる。人がいつアプリケーションに拘束されるまたはされないのか理解できるように、明らかなフィードバックが与えられる。全てのプレーヤーが離脱したとき、アプリケーションを一時中止することができ、またそうでなければ、不活性化することができる。
【0081】
[0110] 図8aは、図5のステップ504において記述したように、人がアプリケーションに関与するときにしやすくする方法例を示す。ステップ800は、自動的にアバターおよびプロファイル・データーを発生することを含む。ステップ802は、このプロファイルおよびアバターを自動的に人に関連付けることを含む。ステップ804は、アバターをディスプレイ上に表示することを含み、ステップ806は、例えば、リアル・タイムで、人のその後の追跡に基づいて、表示を更新することを含む。その人が現在アプリケーションに関与している唯一の人である場合、アプリケーションはスタンバイ・モードから、ユーザーの動きに基づいて入力を受ける準備ができているレディ・モードに移ることができる。
【0082】
[0111] 人は、アプリケーションに関与するにあたって、いずれのタイプの手作業による設定プロセスを経る必要もなく、したがって、遅延なく、「出発およびプレーのみ」(just walk up and play)手法でアプリケーションと相互作用を開始することができる。キーボード、マウス、またはハンド・ヘルド・コントローラというようなハードウェアは、相互作用を始める際には不要である。
【0083】
[0112] 自動的に発生され人と関連付けられるアバターは、身長、幅、骨格モデル、その人の衣服からのRGB色データー等というような、その人の検出された特性、ならびに随意に音声トーンおよび音量というようなオーディオ特性に基づくことができる。または、デフォルトの汎用アバターを提供することもできる。また、人がしかるべきユーザー・インターフェースを用いて、自動的に発生したアバターを変更することも可能である。人は、アバターを構成するにあたって、いかなるタイプの手作業による設定プロセスを経る必要もなく、したがって、アバターを用いて遅延なくアプリケーションと相互作用し始めることができる。アプリケーションの中には、アバターが仮想空間を探検するに連れて、その外観またはその他の特徴を変更することができるものもある。アバターの特徴は、仮想空間において得られるまたは失われる能力(例えば、「パワー」)に関係付けることができる。場合によっては、人は実際の金またはプレー用の金を用いてアバターに特徴を購入し、仮想空間におけるアバターの動作によって特徴を獲得することまたは失うこともある。また、プロファイル・データーは、アバターの特徴または他の特性も含むことができる。人がアプリケーションに関与するのを停止してその後に戻ったとき、この人および彼または彼女のアバターを、人が離脱したときに存在していた状態に再現するために、プロファイル・データーにアクセスすることができる。
【0084】
[0113] 発生したプロファイルは、身長、幅、骨格モデル、その人の衣服からのRGB色データー等というような、その人の検出された特性、ならびに随意に音声トーンおよび音量というようなオーディオ特性を含むことができる。人の特性をアプリケーションに結び付けることによって、は、彼または彼女をアプリケーションに結び付けることができる。一般に、骨格データーのような特性は、人が視野に入ったときに、この人に結び付けることができる。つまり、プロファイル・データーは、深度カメラによって判定される身体的特性を含む、人の識別を含むことができる。
【0085】
[0114] また、プロファイル・データーは、人のアプリケーションとの相互作用を表す情報も含むことができる。例えば、ゲーム・アプリケーションでは、プロファイル・データーは、人が達成したスコアまたは進展、および仮想空間におけるその人のアバターの位置を示すことができる。仮想空間は、コンピューター・モニタ、テレビジョン画面のようなディスプレイ上に設けられるか、あるいは壁上に投影される。仮想空間は、あらゆる現実のまたは仮想の空間、屋内空間、あるいは野外空間を表すことができる。仮想空間は、人を表すアバターを含むことができ、このアバターは人の動きの追跡に基づいて動く。アバターは、フォトリアリズムの態様でユーザーを描写することができ、動物、車両、あるいはその他のキャラクターまたは物体であってもよい。
【0086】
[0115] 随意なこととして、ネットワーク構成の手法では、多数の人が同時に異なる位置からアプリケーションに関与する。例えば、第1および第2の友人が、それぞれ、彼らの自宅に別個の第1および第2モーション・キャプチャー・システムを有することが考えられる。彼らは、同時に仮想空間において相互作用し始めるように用意することができる。第1の人が彼または彼女の身体を動かして視野における第1アバターを制御することによってアプリケーションに関与すると、第1モーション・キャプチャー・システムは、当該第1モーション・キャプチャー・システムの視野における第1の人の身体を追跡する。また、第1モーション・キャプチャー・システムは、ネットワークを通じて、第2モーション・キャプチャー・システムからデーターを受信する。第2モーション・キャプチャー・システムは、第2の人が彼または彼女の身体を動かして仮想空間において第2アバターを制御することによって遠隔地からアプリケーションに関与すると、第2モーション・キャプチャー・システムの視野における第2の人の身体を追跡する。このデーターに応答して、第1アプリケーションは、ディスプレイ上の仮想空間に、第1アバターと共に第2アバターを表示し、第2の人が彼らの身体を動かして第2アバターを制御することによってアプリケーションに関与し続けるに連れて、表示を更新する。同様に、第2モーション・キャプチャー・システムは、ネットワークを通じて第1モーション・キャプチャー・システムからデーターを受信することができるので、第2の人は彼または彼女のディスプレイ上で双方のアバターを見ることができる。このように、両方の人が同じオーディオビジュアル出力を体験する。
【0087】
[0116] アバターおよび/または仮想空間の表示は、次に論ずるように、他の人が現在アプリケーションに関与しているか否かに基づいて調節することができる。
[0117] 図8bは、他のユーザーが現在アプリケーションに関与しているときに、図5のステップ504において記述したように、人がアプリケーションに関与しやすくする方法例を示す。ステップ810において、他の人が現在アプリケーションに関与しており、彼または彼女のアバターがディスプレイ上にあると判断する。ステップ812において、プロファイルおよびアバターを新たな人、例えば、アプリケーションに関与する意図があると新たに認識された人と関連付ける。この新たな人のアバターを描写するために表示を更新するときには、異なる選択肢が可能である。1つの手法では、ステップ814において、ディスプレイの同じ領域内にアバターを表示して、これらが同じ視点から見られるようにする。一例を図10bに示し、以下で更に詳しく論ずる。他の手法では、ステップ816において、ディスプレイの別個の領域にアバターを表示し、異なるそれぞれの視点からこれらを見ることができるようにする。一例を図10cに示し、以下で更に詳しく論ずる。
【0088】
[0118] 図9aは、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。人がアプリケーションに関与しているときには、種々のシナリオに遭遇する可能性がある。例えば、視野において他の人または物体によって人が遮られたため、人が視野を離れたため、または他の何らかの理由で人が検出されないために、人がもはや検出されなくなるという可能性がある。このようなシナリオに対処するための方法例では、判断ステップ900において、閾値時間期間にわたって人がもはや検出されていないか否か判断する。この閾値時間期間は、例えば、ある検出サイクル数に対応することができる。通例、毎秒数回の検出サイクルがある。しかるべき閾値時間期間は、検査によって決定することができる。判断ステップ900が偽である場合、ステップ902において、人はアプリケーションとの関与を続ける。例えば、アバターがディスプレイ上に留まることができる。
【0089】
[0119] 判断ステップ900が真である場合、ステップ904において、その人のアプリケーションとの関与を保留にする。これは、しかるべき視覚および/または可聴メッセージを与えることを含むことができる。加えて、人のアバターが仮想空間から除去されるように、これを不活性化することができる。代わりに、アバターをディスプレイの別の領域に表示して、これが一時的にインアクティブであることを示すことができる。または、アバターは仮想空間に留まることができるが、例えば、半透明の外観を有して、アクティブでないことを示し、例えば、それを動かすことができないようにする。関与する人が多数いて、各人に別々の画面領域が割り当てられる場合(図10cにおけるような場合)、保留は、保留にされた人の画面領域が除去されるように表示を更新する(図10bにおけるように)ことを含むことができる。
【0090】
[0120] 随意なこととして、判断ステップ906において、人が視野を離れて行ったのが追跡されたか否か判断する。これは、例えば、視野における人の動きを追跡して、この人が視野の境界の方向に移動し、その後もはや検出できなくなったか否か判断することによって、判断することができる。判断ステップ906が偽である場合、人は未だ視野内にいるが、おそらくは他の人または他の物体、例えば、家具によって遮られており、深度カメラによって検出することができないと仮定する。この場合、ステップ908において、この人は後に再度検出される。以前に検出された人がもはや検出されなくなり、次いで再度検出された場合、骨格モデルのようなこの人の身体的特性に基づいて、この人を特定することができる。
【0091】
[0121] 判断ステップ912では、人が時間切れになったか否か判断する。これが意味するのは、関与が指定時間期間、例えば、数分よりも長い間保留にされたということである。判断ステップ912が偽である場合、ステップ916において、関与する意図を再度判断することなく、この人の関与を継続する。以前と同様、しかるべき視覚メッセージおよび/または可聴メッセージをアプリケーションによって与えることができる。関与の継続は、例えば、アバターを再度活性化することを含むことができる。まだ関与している他の人が一人以上いる場合、保留は、関与が継続した人に別々の画面領域が与えられるように(図10cにおけるように)表示を更新することを含むことができる。判断ステップ912が真である場合、ステップ914において、人のアプリケーションに関与する意図が新たに判断し直され、その後に人は再度関与することができる。このように、再度関与する意図を明示するまで、この人は離脱したものとして扱われる。
【0092】
[0122] 判断ステップ906が真である場合、人は視野から既に離れていることになる。この場合、ステップ910においてこの人が後に再度検出されたとき、この人のアプリケーションに関与する意図が、ステップ914において新たに判断し直され、その後にこの人は再度関与することができる。
【0093】
[0123] 図5における例は、最初に視野に入ったときというように、人が第1時点ではアプリケーションに関与する意図がないが、何秒か後というような、後の第2時点では、アプリケーションに関与する意図があることを示した。図9bの例では、人は、第2時点の後になる、第3時点において、アプリケーションから離脱する意図があり、これに応答して、プロファイルおよびアバターが、この人の識別子にインデックスされて、自動的に格納される。更に、この人は、第3時点の後になる、第4時点においてアプリケーションに再度関与する意図を明示し、これに応答して、格納されたプロファイルおよびアバターに基づいて、この人は再度アプリケーションに関与する。
【0094】
[0124] 図9bは、人がアプリケーションから離脱し、次いで再度このアプリケーションに関与するときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。この場合、1つ以上の要因が、この人がアプリケーションから離脱する意図があることを示すとき(ステップ910)、この人は、現在視野において検出することができ、現在アプリケーションに関与していると考えられる。一般に、関与または離脱する意図を判断するためには、図7aと関連付けて論じられたのと同じ要因を用いることができる。例えば、視野内において、関与する意図の低い確率と関連付けられている位置にその人がいる場合、これは、離脱する意図の高い確率に対応する。人が関与する意図の低い確率と関連付けられている構えを有する場合、これは、離脱する意図の高い確率に対応する。人が、関与する意図の低い確率と関連付けられている動きを有する場合、これは、離脱する意図の高い確率に対応する。離脱する意図を示す動きには、人がディスプレイから離れるように歩くこと、ディスプレイに背を向けること(立っているまたは歩いている間に)、関与する意図がある確率が最も高い位置から遠ざかるように歩くこと、および/または視野の境界に向かって歩き次いで視野から出ることが含まれる。指定された時間期間にわたって人から音声データーがでないことも、離脱する意図の高い確率と関連付けることができる。
【0095】
[0125] アプリケーション・コンテキストに特定的な離脱する意図の一例として、物理空間において人による実際の前後(back and forth)の動き、前方への動き、および後方への動きを必要とするアプリケーションについて考える。この場合、離脱する意図に対する規準は、このようなより大きな動きに対応するように調節することができる。実際の動きを必要としないアプリケーションでは、実際の動きを離脱する意図の印と見なすことができる。または、ヨガ運動に関するアプリケーションでは、座っている姿勢が予期されると考えられ、これを離脱する意図の印と見なしてはならない。
【0096】
[0126] ステップ912では、人の識別子にインデックスされたプロファイル・データーおよびアバター・データーを格納する。識別子は、身長および幅、ならびに骨格モデル、トーンおよびその他の要因に基づいて特定の人と関連付けることができる音声データー、衣服の色というような色データー等というような、人の身体特性と関連付けることができる。また、人は、「さよなら」または「停止」というような、認識済みのコマンドを発話することもできる。後のある時点において、ステップ914では、人がアプリケーションに再度関与する意図があると判断する。ステップ916では、格納されているプロファイルおよびアバター・データーにアクセスし、離脱したときに離れたのと同じ場所において、この人がアプリケーションと再度関与でき、この人の体験の連続性を維持できるようにする。
【0097】
[0127] 図9cは、図5のステップ506において記述したように、そして図8bの方法にしたがって、プレーヤーがモーション・キャプチャー・システムの視野において位置を交換したときにおいて、アプリケーションに関与している間人を監視する方法例を示す。判断ステップ920では、プレーヤーが視野内において位置を交換したか否か判断する。彼らが交換した場合、ステップ922において、人特定表示領域も交換する。例えば、図10cに示すように、ディスプレイ1004の領域1005は人1022に対してアバター1023を表示し、ディスプレイ1004の領域1006は人1024に対してアバター1025を表示する。このように、表示領域は、物理空間の中にいる人に対応して位置付けられ、左側の表示領域は左側の人に、そして右側の表示領域は右側の人に割り当てられる。アプリケーションと相互作用するとき、人は位置を交換することができ、例えば、右から左にそして左から右に交換することができる。例えば、アプリケーションの中には、物理空間全体における人によるかなりの移動を伴うので、固定位置が維持されないものもある。したがって、人は自然に物理空間において横方向に動くことができる。場合によっては、一人の人が、他の人のディスプレイまでの視野を遮るので、遮られた人が横に動いて位置を交換することもある。
【0098】
[0128] 人1022および1024が位置を交換して、図10dに示すように、人1024が左側に、そして人1022が右側に来るようにすると、表示領域1005および1006は、それに応じて交換され、表示領域1005が右側に移動し、表示領域1006が左側に移動する。
【0099】
[0129] 一般に、1つの表示領域から2つ以上の表示領域への遷移、および逆は自動的に行うことができる。尚、2つよりも多い表示領域を伴う遷移も可能であることを注記しておく。例えば、二人のプレーヤーが彼ら自身の表示領域を有しているときに第3のプレーヤーが加入した場合、2つの表示領域から3つの表示領域も可能である。各表示領域は、物理空間におけるプレーヤーの位置に対応して位置付けることができる。更に、表示領域を縦に、一方の上に他方を重ねることが可能である。例えば、一人のプレーヤーが視野内においてより高い表面に立っているために、他のプレーヤーよりも高くなる可能性があるので、高い方のプレーヤーの表示領域は、低い方のプレーヤーの表示領域の上に示される。
【0100】
[0130] 表示領域数において、または表示領域の交換において、過度に頻繁な変更を避けるように注意すべきである。1つの変化が生じた後、他の変更を許容するまでの最小時間を設定するとよい。場合によっては、関与する人が一時的に他の関与する人または観客によって遮られる可能性があり、したがって追跡することができないこともある。このような場合に連続性を確保するためには、表示領域はできるだけ正常に応答し続けなければならない。
【0101】
[0131] 図9dは、アプリケーションに関与していない追加の人の追跡に基づいて、アプリケーションの出力を変更するときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。人を追跡してアプリケーションに関与する意図があるか否か判断することに加えて、視野の中にいる他の人の意図を判断し、対応する入力をアプリケーションに供給することも可能である。例えば、一人以上の人が視野の中に観客としていて、他の人がアプリケーションに関与するのを見て、彼または彼女を励ますというようなこともあり得る。ステップ930は、視野の中にいる追加の人を追跡することを含む。この人は、現在アプリケーションに関与しておらず、例えば、ディスプレイ上の仮想空間においてアバターを制御しない。判断ステップ932では、この追加の人のアプリケーションに対する興味が高くなっているか否か判断する。これは、図7aと関連付けて論じた要因を含む種々の要因を用いて判断することができる。更に、関心がある観客が行う行為に関する他の要因も検出することができる。例えば、関与している人の背後または横に、同じ距離のところに1人以上の人を検出することがあるかもしれない。一人以上の人が、立ち上がる、応援するために彼らの腕を彼らの頭よりも高く上げる、またはうるさく聞こえる声援を発するというような行為を行うこともあり得る。
【0102】
[0132] 判断ステップ932が偽である場合、ステップ930の追跡が継続する。判断ステップ932が真である場合、ステップ934において、アプリケーションの視覚出力および/または可聴出力を変更する。例えば、人のアバターが走っているかまたは運転しているアプリケーションにおいて、人を応援している観客に対するしかるべき応答を、娯楽体験を高めるための速度上昇(speed boost)または一層派手なプレー(play louder)、ペースを速めた背景音楽というような、拡張機能と共にアバターに与えることにしてもよい。
【0103】
[0133] シナリオの一例では、モーション・キャプチャー・システムの視野における第1の人(既にアプリケーションに関与している)の動きを追跡することを含み、視野において第1の人の身体を区別することを含み、第1の人は、第1の人の身体を動かしてディスプレイ上の仮想空間においてアバターを制御することによってアプリケーションと相互作用を行う。第1の人の動きを追跡している間、ステップ930では、視野において、アプリケーションに関与しておらず、ディスプレイ上の仮想空間においてアバターを制御していない少なくとも一人の追加の人を追跡することを伴う。少なくとも一人の人を追跡することによって、判断ステップ932において、この少なくとも一人の追加の人の行動に関して既定の規準が満たされたことが示された場合、ステップ934において、アプリケーションの視覚出力および/または可聴出力を変更する。既定の規準は、少なくとも一人の追加の人が、アプリケーションに対する関心レベルが高くなったことを示すように動くこと、またはアプリケーションに対する関心が高くなったことを示す音響(例えば、応援、拍手)を発することを含むことができる。
【0104】
[0134] 図9eは、一人の人が、アプリケーションに関与している他の人と代わるときに、図5のステップ506において記述したように、アプリケーションに関与している間人を監視する方法例を示す。ステップ940において、第1の人がプロファイルおよびアバターを用いてアプリケーションに関与する。ステップ942において、第2の人が関与する意図を有し、第2の人が離脱する意図を有する。ステップ944において、第2の人が、第1の人によって用いられたのと同じプロファイルおよびアバターを用いて、アプリケーションに関与する。この場合、仮想空間において同じ状態にあるアバターの制御が、第2の人によって引き継がれる。例えば、ゲーム・アプリケーションにおいて、第1の人によって達成された同じスコアまたは進展レベルを第2の人に受け渡して、連続性を維持する。これは、第2の人に対して異なるアバターやプロファイルを用いるのとは対照的である。また、スコアまたは進展レベルというような他のプロファイル・データーの連続性を維持しつつ、第2の人に新たなアバターを与えることも可能である。他の可能性は、新たなアバターの連続性を維持するが、異なるプロファイル・データーを用いることである。例えば、第2の人は、スコアをリセットするが、第1の人と同じアバターを用いて新たなゲームを開始することができる。
【0105】
[0135] 例えば、図10eを参照すると、人1024が、ディスプレイ1040上でアバター1042を制御することによって、アプリケーションに関与する(例えば、人1024は左腕を上げ、アバター1042は対応する腕を上げる)。一例として、このアバターは、人1024の特定形状に対応しない汎用的な外観を有する。第2の人1022は、視野の後ろに向かって立っており、関与しない意図を示す。図10fにおいて、第1の人1024が後方に動いて離脱する意図を示し、第2の人1022は前方に動いて、関与する意図を示すので、第2の人の動きがこれよりディスプレイ1050においてアバター1042を制御するために用いられる(例えば、人1022が右腕を上げ、アバター1042が対応する腕を上げる)。
【0106】
[0136] この例では、一度に一人のプレーヤーが関与し、プレーヤーの交換が行われる。他の例では、一度に多数のプレーヤーが関与し、プレーヤーの交換はこれらのプレーヤーの一人以上に対して行われる。
【0107】
[0137] アプリケーション自体も、人の関与する意図を判断する際に要因の1つとなることもあり得る。例えば、プレーヤーが一人のアプリケーションでは、新たなアバターが既存のアバターに加入できない。第2の人が第1の人に代わるためには、恐らくは、第2の人による更に強い、更に確率が高い関与する意図、および第1の人による更に強い離脱する意図が必要になる場合もある。場合によっては、第2の人が関与する強い意図を有していても、第1の人が離脱する意図を有さない限りは、無視される。
【0108】
[0138] 図10aは、一人の人がアプリケーションに関与しており、他の人がこのアプリケーションに関与していない一例を示す。以前に論じたように、視野の中にいる人でも、必ずしもアプリケーションに関与する意図があるとは限らない。更に、視野の外側にいる人でも、アプリケーションに関与する意図がある場合もある。しかしながら、この意図は、この人が視野の中に入るまで、この人の画像データーから判断することができない。恐らく、オーディオ・データーを用いれば、この場合の意図を判断することができる。
【0109】
[0139] ディスプレイ1000は、アバター1025が路上1008で立っている仮想世界(virtual word)の一例を示す。アバター1025は、人1024の形状に対応する形状を有する。代表的レンズ1012を有する深度カメラ・システム1010が設けられ、破線1019と1020との間に対応する視野1021がある。一人の人1022が視野の外側におり、したがって、深度カメラ・システム1010によって視覚的に検出されていない。他の人1028が椅子1030に座っている。他の人1024が、深度カメラ・システムに向かって立っている。他の人1026が、視野を横切って歩いている。既に論じた種々の考慮に基づいて、人1022は、彼または彼女の位置が視野の外側にあることに基づいて、アプリケーションに関与する意図があるとはみなされない可能性が高く、存在していると認識されることすらないかもしれない。人1028も、同様に、視野1021の後方および横に向いている彼または彼女の位置に基づいて、そして、構えが座っている構えであり、身体の側面が深度カメラ・システムに向いていることに基づいて、アプリケーションに関与する意図があると見なされる可能性が高い。
【0110】
[0140] 人1024は、視野1021の中央にある彼または彼女の位置、そして深度カメラ・システムに向いており胸を張っている構え、更に、1本の腕を横腹まで上げている動きに基づいて、アプリケーションに関与する意図があると見なされる可能性が高い。人1024が関与すると、アバター1025の動きを、人1024の動きに対応して、アプリケーションによって設定することができる。
【0111】
[0141] 人1026は、視野1021の横を向いている彼または彼女の位置に基づいて、そして身体が深度カメラ・システムから逸れる方向に向いている構えに基づいて、更には人が視野を横切って、視野の境界1020に向かって動いている動きに基づいて、アプリケーションに関与する意図があると見なされない可能性が高い。
【0112】
[0142] 尚、深度カメラ・システムおよび/または関連付けられている計算環境は、一人または多数の人の意図を、例えば、毎秒多数回繰り返し判断することができるので、しかるべき変化を素早く検出し、それに応じてアプリケーションを調節することができる。例えば、余りに頻繁な変化を避けるために、フィルタリングおよび平均化を用いて、結果を平滑化することができる。
【0113】
[0143] 図10bは、二人の人が1つのアプリケーションに関与しており、ディスプレイ上の仮想空間の共通視点を有するときの表示例を示す。ディスプレイ1002では、図10aからの人1024に、以前は視野の外側にいた人1022が加入する。既に論じた種々の要因に基づいて、人1022はアプリケーションに関与する意図があると判断される。その結果、対応するアバター1023が、人1024のアバター1025と並んで、ディスプレイ1002上に表示される。この場合、ディスプレイは、図8bのステップ814と関連付けて既に論じたように、人1022および1024に対して仮想空間の共通視点を与える。
【0114】
[0144] 図10cは、 二人の人が1つのアプリケーションに関与しており、ディスプレイ上の仮想空間の異なる視点を有するときの表示例を示す。図8bのステップ816と関連付けて既に論じたように、ディスプレイ1004には、別個の表示領域1005および1006がアバター1023および1025に与えられており、各表示領域において異なる視点またはカメラ・アングルから仮想空間が見られる。例えば、表示領域1006の視点は、図10bにおける場合とほぼ同じである。しかしながら、表示領域1005の視点は、図10bの表示領域1002とは全く異なっている。尚、アバター1023および1025は同じ仮想空間にい続けることを注記しておく。例えば、これらは双方共道路1008上に立っている。しかしながら、表示領域1005の視点は逸れて、丘の上に家1007がある道路側を見ており、一方表示領域1006の視点は道路を見下ろし続ける。
【0115】
[0145] 随意なこととして、これらの表示領域は、完全に異なる仮想空間または区分された場面をそれぞれの表示領域において与えることができる。これらの表示領域は、異なるアプリケーションの仮想空間を与えることでさえも可能である。
【0116】
[0146] 先に論じたように、表示領域1005および1006の相対的な位置は、人1022および1024の相対的な位置に対応することができる。他の選択肢は、人が視野に入って来た方向に基づいて、その人に合わせて表示領域を与えることである。例えば、人1022は視野に左側から入ることができ、この場合、図10cの構成が与えられる。
【0117】
[0147] 図10dは、図10cの表示領域に対して、人が物理空間における位置を交換したときに、表示領域が交換される分割画面表示の一例を示す。図9cと関連付けて既に論じたように、人1022が人1024の左側から右側に移動した場合、表示領域1005および1006はそれに対応して交換される。これによって、人々が視野中を動き回っても、人々がアプリケーションに関与するのが一層容易となる。何故なら、人々は彼らに関心がある表示領域に物理的に近くなり、この表示領域と整列されるからである。
【0118】
[0148] 図10aから図10fは、モーション・キャプチャー・システムの視野において追跡される人々の身体の例を示し、追跡は視野において人の身体を区別することを含む。
【0119】
[0149] 本明細書における以上の技術の詳細な説明は、例示および説明に限って提示したに過ぎない。これで全てであることや、本技術を開示した通りの形態に限定することは意図していない。以上の教示に照らし合わせれば、多くの変更や変更が可能である。記載した実施形態は、本技術の原理およびその実用的用途を最良に説明するために選ばれたのであり、これによって他の当業者が、想定される個々の使用に適するように、本技術を種々の実施形態においてそして種々の変更を伴って、最良に利用することを可能にする。本技術の範囲は、添付されている特許請求の範囲によって定義されることを意図している。
【特許請求の範囲】
【請求項1】
モーション・キャプチャー・システムにおいて人がアプリケーションに関与する意図を認識するためのプロセッサー実施方法であって、
前記モーション・キャプチャー・システムの視野において人の身体を追跡するプロセッサー実施ステップであって、前記追跡が前記視野において前記人の身体を区別することを含む、プロセッサー実施ステップと、
前記追跡に基づいて、前記人が第1の時点において前記アプリケーションに関与する意図がないと判断するプロセッサー実施ステップと、
前記追跡に基づいて、前記人が第2の時点において前記アプリケーションに関与する意図があると判断するプロセッサー実施ステップと、
前記人が前記アプリケーションに関与する意図があると判断したことに応答して、前記アプリケーションにおいて自動的にプロファイルおよびアバターを前記人と関連付けることによって、前記人が前記アプリケーションに関与することを可能にし、前記アバターをディスプレイ上の仮想空間に表示し、前記人が当該人の身体を動かして前記アバターを制御することによって前記アプリケーションに関与するに連れて、前記視野における前記人の身体のその後の追跡に基づいて、前記表示を更新するプロセッサー実施ステップと、
を備えている、コンピューター実施方法。
【請求項2】
請求項1記載のプロセッサー実施方法において、前記人の前記アプリケーションとの関与が開始された後に、
前記人の身体が前記視野において指定された時間期間未満にわたって検出されず、その後前記視野において再度検出された場合、前記人が前記アプリケーションに関与する意図があると再度判断することなく、前記人が前記アプリケーションに関与し続けることを許容し、
前記人の身体が前記視野において前記指定された時間期間よりも長く検出されず、その後前記視野において再度検出された場合、前記人が前記アプリケーションに関与する意図があると再度判断されるまで、前記人が前記アプリケーションに関与し続けることを許容しない、プロセッサー実施方法。
【請求項3】
請求項2記載のプロセッサー実施方法において、
前記指定された時間期間が、前記人の身体が前記視野から離れるのを検出されているか否かに基づいて設定される、プロセッサー実施方法。
【請求項4】
請求項1から3までのいずれか1項に記載のプロセッサー実施方法において、
前記アプリケーションが、前記第1の時点においてインアクティブ・モードになっており、前記人が前記アプリケーションに関与する意図があると判断したことに応答して、前記第2の時点においてアクティブ・モードに設定される、方法。
【請求項5】
請求項1から4までのいずれか1項に記載のプロセッサー実施方法であって、更に、前記視野における前記人の身体のその後の追跡に基づいて、
前記第2の時点の後に、第3の時点において前記人が前記アプリケーションから離脱する意図があると判断し、これに応答して、前記人の識別子にインデックスされた前記プロファイルおよびアバターを自動的に格納するプロセッサー実施ステップと、
前記第3の時点の後に、第4の時点において、前記人が前記アプリケーションに再度関与する意図があると判断し、これに応答して、前記格納されているプロファイルおよびアバターに基づいて、前記人が前記アプリケーションに再度関与するプロセッサー実施ステップと、
を備えている、プロセッサー実施方法。
【請求項6】
請求項5記載のプロセッサー実施方法において、
前記プロファイルが、前記人がゲームをプレーしているときの進展を示し、前記人の進展が、前記人が前記アプリケーションに再度関与したときに維持される、プロセッサー実施方法。
【請求項7】
請求項1から6までのいずれか1項に記載のプロセッサー実施方法において、
前記人が前記アプリケーションと関与する意図があると判断するプロセッサー実施ステップが、前記人の身体が前記モーション・キャプチャー・システムにおけるカメラに対して真っ直ぐに伸びて面していると判断することを含む、プロセッサー実施方法。
【請求項8】
請求項1から7までのいずれか1項に記載のプロセッサー実施方法において、
前記人が前記アプリケーションと関与する意図があると判断するプロセッサー実施ステップが、前記人の音声データーを処理し、前記アプリケーションと関与する意図を示す発話を検出する、および前記アプリケーションに関与する意図を示す音声音量を検出するの内少なくとも一方を行うことを含む、プロセッサー実施方法。
【請求項9】
請求項1から8までのいずれか1項に記載のプロセッサー実施方法において、
前記人が前記アプリケーションと関与する意図があると判断するプロセッサー実施ステップが、前記人の身体が、前記視野内におり前記アプリケーションに関与している他の人 の方を向いており、この人から指定された距離以内にいると判断することを含む、プロセッサー実施方法。
【請求項10】
請求項1から9までのいずれか1項に記載のプロセッサー実施方法であって、更に、
他の人が、当該他の人の身体を動かして前記仮想空間において他のアバターを制御することによって、遠隔地から前記アプリケーションに関与すると、他のモーション・キャプチャー・システムの視野において前記他の人の身体を追跡する前記他のモーション・キャプチャー・システムから、ネットワークを通じてデーターを受信するプロセッサー実施ステップと、
前記データーに応答して、前記アプリケーションに関与する意図があると判断された前記人の前記アバターと共に、前記ディスプレイ上の仮想空間に前記他のアバターを表示し、前記他の人が当該他の人の身体を動かして前記他のアバターを制御することによって前記アプリケーションに関与するに連れて、前記表示を更新するプロセッサー実施ステップと、
を備えている、プロセッサー実施方法。
【請求項11】
請求項1記載の前記方法を実行するように少なくとも1つのプロセッサーをプログラミングするために、コンピューター読み取り可能ソフトウェアが具体化されている有形コンピューター読み取り可能ストレージ。
【請求項12】
モーション・キャプチャー・システムであって、
視野を有する深度カメラ・システムと、
ディスプレイと、
前記深度カメラ・システムおよび前記ディスプレイと通信する少なくとも1つのプロセッサーと、
を備えており、前記少なくとも1つのプロセッサーが、前記モーション・キャプチャー・システムにおいて人がアプリケーションに関与する意図を認識するために、(a)前記モーション・キャプチャー・システムの視野において人の身体を追跡し、前記追跡が前記視野において前記人の身体を区別することを含み、(b)前記追跡に基づいて、前記人が第1の時点において前記アプリケーションに関与する意図がないと判断し、(c)前記追跡に基づいて、前記人が第2の時点において前記アプリケーションに関与する意図があると判断し、(d)前記人が前記アプリケーションに関与する意図があると判断したことに応答して、前記アプリケーションにおいて自動的にプロファイルおよびアバターを前記人と関連付けることによって、前記人が前記アプリケーションに関与することを可能にし、前記アバターをディスプレイ上の仮想空間に表示し、前記人が当該人の身体を動かして前記アバターを制御することによって前記アプリケーションに関与するに連れて、前記視野における前記人の身体のその後の追跡に基づいて、前記表示を更新する、モーション・キャプチャー・システム。
【請求項13】
請求項12記載のモーション・キャプチャー・システムにおいて、前記人の前記アプリケーションとの関与が開始された後に、
前記人の身体が前記視野において指定された時間期間未満にわたって検出されず、その後前記視野において再度検出された場合、前記少なくとも1つのプロセッサーが、前記人が前記アプリケーションに関与する意図があると再度判断することなく、前記人が前記アプリケーションに関与し続けることを許容し、
前記人の身体が前記視野において前記指定された時間期間よりも長く検出されず、その後前記視野において再度検出された場合、前記少なくとも1つのプロセッサーが、前記人が前記アプリケーションに関与する意図があると再度判断されるまで、前記人が前記アプリケーションに関与し続けることを許容しない、モーション・キャプチャー・システム。
【請求項14】
請求項12または13記載のモーション・キャプチャー・システムにおいて、前記視野における前記人の身体のその後の追跡に基づいて、前記少なくとも1つのプロセッサーが、
前記第2の時点の後に、第3の時点において前記人が前記アプリケーションから離脱する意図があると判断し、これに応答して、前記人の識別子にインデックスされた前記プロファイルおよびアバターを自動的に格納し、
前記第3の時点の後に、第4の時点において、前記人が前記アプリケーションに再度関与する意図があると判断し、これに応答して、前記格納されているプロファイルおよびアバターに基づいて、前記人が前記アプリケーションに再度関与する、モーション・キャプチャー・システム。
【請求項15】
請求項12から14までのいずれか1項に記載のモーション・キャプチャー・システムにおいて、前記人が前記アプリケーションと関与する意図があると判断するために、前記少なくとも1つのプロセッサーが、前記人の音声データーを処理し、前記アプリケーションと関与する意図を示す発話を検出する、および前記アプリケーションに関与する意図を示す音声音量を検出する、の内少なくとも一方を行う、モーション・キャプチャー・システム。
【請求項1】
モーション・キャプチャー・システムにおいて人がアプリケーションに関与する意図を認識するためのプロセッサー実施方法であって、
前記モーション・キャプチャー・システムの視野において人の身体を追跡するプロセッサー実施ステップであって、前記追跡が前記視野において前記人の身体を区別することを含む、プロセッサー実施ステップと、
前記追跡に基づいて、前記人が第1の時点において前記アプリケーションに関与する意図がないと判断するプロセッサー実施ステップと、
前記追跡に基づいて、前記人が第2の時点において前記アプリケーションに関与する意図があると判断するプロセッサー実施ステップと、
前記人が前記アプリケーションに関与する意図があると判断したことに応答して、前記アプリケーションにおいて自動的にプロファイルおよびアバターを前記人と関連付けることによって、前記人が前記アプリケーションに関与することを可能にし、前記アバターをディスプレイ上の仮想空間に表示し、前記人が当該人の身体を動かして前記アバターを制御することによって前記アプリケーションに関与するに連れて、前記視野における前記人の身体のその後の追跡に基づいて、前記表示を更新するプロセッサー実施ステップと、
を備えている、コンピューター実施方法。
【請求項2】
請求項1記載のプロセッサー実施方法において、前記人の前記アプリケーションとの関与が開始された後に、
前記人の身体が前記視野において指定された時間期間未満にわたって検出されず、その後前記視野において再度検出された場合、前記人が前記アプリケーションに関与する意図があると再度判断することなく、前記人が前記アプリケーションに関与し続けることを許容し、
前記人の身体が前記視野において前記指定された時間期間よりも長く検出されず、その後前記視野において再度検出された場合、前記人が前記アプリケーションに関与する意図があると再度判断されるまで、前記人が前記アプリケーションに関与し続けることを許容しない、プロセッサー実施方法。
【請求項3】
請求項2記載のプロセッサー実施方法において、
前記指定された時間期間が、前記人の身体が前記視野から離れるのを検出されているか否かに基づいて設定される、プロセッサー実施方法。
【請求項4】
請求項1から3までのいずれか1項に記載のプロセッサー実施方法において、
前記アプリケーションが、前記第1の時点においてインアクティブ・モードになっており、前記人が前記アプリケーションに関与する意図があると判断したことに応答して、前記第2の時点においてアクティブ・モードに設定される、方法。
【請求項5】
請求項1から4までのいずれか1項に記載のプロセッサー実施方法であって、更に、前記視野における前記人の身体のその後の追跡に基づいて、
前記第2の時点の後に、第3の時点において前記人が前記アプリケーションから離脱する意図があると判断し、これに応答して、前記人の識別子にインデックスされた前記プロファイルおよびアバターを自動的に格納するプロセッサー実施ステップと、
前記第3の時点の後に、第4の時点において、前記人が前記アプリケーションに再度関与する意図があると判断し、これに応答して、前記格納されているプロファイルおよびアバターに基づいて、前記人が前記アプリケーションに再度関与するプロセッサー実施ステップと、
を備えている、プロセッサー実施方法。
【請求項6】
請求項5記載のプロセッサー実施方法において、
前記プロファイルが、前記人がゲームをプレーしているときの進展を示し、前記人の進展が、前記人が前記アプリケーションに再度関与したときに維持される、プロセッサー実施方法。
【請求項7】
請求項1から6までのいずれか1項に記載のプロセッサー実施方法において、
前記人が前記アプリケーションと関与する意図があると判断するプロセッサー実施ステップが、前記人の身体が前記モーション・キャプチャー・システムにおけるカメラに対して真っ直ぐに伸びて面していると判断することを含む、プロセッサー実施方法。
【請求項8】
請求項1から7までのいずれか1項に記載のプロセッサー実施方法において、
前記人が前記アプリケーションと関与する意図があると判断するプロセッサー実施ステップが、前記人の音声データーを処理し、前記アプリケーションと関与する意図を示す発話を検出する、および前記アプリケーションに関与する意図を示す音声音量を検出するの内少なくとも一方を行うことを含む、プロセッサー実施方法。
【請求項9】
請求項1から8までのいずれか1項に記載のプロセッサー実施方法において、
前記人が前記アプリケーションと関与する意図があると判断するプロセッサー実施ステップが、前記人の身体が、前記視野内におり前記アプリケーションに関与している他の人 の方を向いており、この人から指定された距離以内にいると判断することを含む、プロセッサー実施方法。
【請求項10】
請求項1から9までのいずれか1項に記載のプロセッサー実施方法であって、更に、
他の人が、当該他の人の身体を動かして前記仮想空間において他のアバターを制御することによって、遠隔地から前記アプリケーションに関与すると、他のモーション・キャプチャー・システムの視野において前記他の人の身体を追跡する前記他のモーション・キャプチャー・システムから、ネットワークを通じてデーターを受信するプロセッサー実施ステップと、
前記データーに応答して、前記アプリケーションに関与する意図があると判断された前記人の前記アバターと共に、前記ディスプレイ上の仮想空間に前記他のアバターを表示し、前記他の人が当該他の人の身体を動かして前記他のアバターを制御することによって前記アプリケーションに関与するに連れて、前記表示を更新するプロセッサー実施ステップと、
を備えている、プロセッサー実施方法。
【請求項11】
請求項1記載の前記方法を実行するように少なくとも1つのプロセッサーをプログラミングするために、コンピューター読み取り可能ソフトウェアが具体化されている有形コンピューター読み取り可能ストレージ。
【請求項12】
モーション・キャプチャー・システムであって、
視野を有する深度カメラ・システムと、
ディスプレイと、
前記深度カメラ・システムおよび前記ディスプレイと通信する少なくとも1つのプロセッサーと、
を備えており、前記少なくとも1つのプロセッサーが、前記モーション・キャプチャー・システムにおいて人がアプリケーションに関与する意図を認識するために、(a)前記モーション・キャプチャー・システムの視野において人の身体を追跡し、前記追跡が前記視野において前記人の身体を区別することを含み、(b)前記追跡に基づいて、前記人が第1の時点において前記アプリケーションに関与する意図がないと判断し、(c)前記追跡に基づいて、前記人が第2の時点において前記アプリケーションに関与する意図があると判断し、(d)前記人が前記アプリケーションに関与する意図があると判断したことに応答して、前記アプリケーションにおいて自動的にプロファイルおよびアバターを前記人と関連付けることによって、前記人が前記アプリケーションに関与することを可能にし、前記アバターをディスプレイ上の仮想空間に表示し、前記人が当該人の身体を動かして前記アバターを制御することによって前記アプリケーションに関与するに連れて、前記視野における前記人の身体のその後の追跡に基づいて、前記表示を更新する、モーション・キャプチャー・システム。
【請求項13】
請求項12記載のモーション・キャプチャー・システムにおいて、前記人の前記アプリケーションとの関与が開始された後に、
前記人の身体が前記視野において指定された時間期間未満にわたって検出されず、その後前記視野において再度検出された場合、前記少なくとも1つのプロセッサーが、前記人が前記アプリケーションに関与する意図があると再度判断することなく、前記人が前記アプリケーションに関与し続けることを許容し、
前記人の身体が前記視野において前記指定された時間期間よりも長く検出されず、その後前記視野において再度検出された場合、前記少なくとも1つのプロセッサーが、前記人が前記アプリケーションに関与する意図があると再度判断されるまで、前記人が前記アプリケーションに関与し続けることを許容しない、モーション・キャプチャー・システム。
【請求項14】
請求項12または13記載のモーション・キャプチャー・システムにおいて、前記視野における前記人の身体のその後の追跡に基づいて、前記少なくとも1つのプロセッサーが、
前記第2の時点の後に、第3の時点において前記人が前記アプリケーションから離脱する意図があると判断し、これに応答して、前記人の識別子にインデックスされた前記プロファイルおよびアバターを自動的に格納し、
前記第3の時点の後に、第4の時点において、前記人が前記アプリケーションに再度関与する意図があると判断し、これに応答して、前記格納されているプロファイルおよびアバターに基づいて、前記人が前記アプリケーションに再度関与する、モーション・キャプチャー・システム。
【請求項15】
請求項12から14までのいずれか1項に記載のモーション・キャプチャー・システムにおいて、前記人が前記アプリケーションと関与する意図があると判断するために、前記少なくとも1つのプロセッサーが、前記人の音声データーを処理し、前記アプリケーションと関与する意図を示す発話を検出する、および前記アプリケーションに関与する意図を示す音声音量を検出する、の内少なくとも一方を行う、モーション・キャプチャー・システム。
【図1a】
【図1b】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図6c】
【図7a】
【図7b】
【図7c】
【図7d】
【図8a】
【図8b】
【図9a】
【図9b】
【図9c】
【図9d】
【図9e】
【図10a】
【図10b】
【図10c】
【図10d】
【図10e】
【図10f】
【図1b】
【図2】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図6c】
【図7a】
【図7b】
【図7c】
【図7d】
【図8a】
【図8b】
【図9a】
【図9b】
【図9c】
【図9d】
【図9e】
【図10a】
【図10b】
【図10c】
【図10d】
【図10e】
【図10f】
【公表番号】特表2013−517051(P2013−517051A)
【公表日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2012−548953(P2012−548953)
【出願日】平成22年12月31日(2010.12.31)
【国際出願番号】PCT/US2010/062655
【国際公開番号】WO2011/087890
【国際公開日】平成23年7月21日(2011.7.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.HDMI
2.イーサネット
3.BLUETOOTH
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
【公表日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願日】平成22年12月31日(2010.12.31)
【国際出願番号】PCT/US2010/062655
【国際公開番号】WO2011/087890
【国際公開日】平成23年7月21日(2011.7.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.HDMI
2.イーサネット
3.BLUETOOTH
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
[ Back to top ]