(57)【特許請求の範囲】
【請求項１】
深度カメラ・システムであって、
視野内にある物体を、構造化光のパターンで照明する照明装置と、
前記物体からの反射光を検知して、画素データーの第１フレームを得る第１センサーであって、画素を備え、前記照明装置から第１基準線距離ＢＬ１に位置する第１センサーと、
前記物体からの反射光を検知して、画像データーの第２フレームを得る第２センサーであって、画素を備え、前記照明装置から第２基準線距離ＢＬ２に位置し、前記第２基準線が前記第１基準線よりも大きく、前記第１センサーの画素が前記第２センサーの画素よりも光に対して低感度である、第２センサーと、
命令を格納するメモリーと、
前記命令を実行するプロセッサーであって、
前記画素データーの第１フレームを前記構造化光のパターンと比較することによって深度値を含む前記物体の第１構造化光深度マップを導き出し、
前記画素データーの第２フレームを前記構造化光のパターンと比較することによって深度値を含む前記物体の第２構造化光深度マップを導き出し、
前記第１構造化光深度マップの深度値および前記第２構造化光深度マップの深度値に基づく合体深度マップを導き出す、
プロセッサーと、
を備えている、深度カメラ・システム。
【請求項２】
請求項１記載の深度カメラ・システムにおいて、
前記第１センサーの画素が、前記第２センサーの画素よりも低露出時間を有する、深度カメラ・システム。
【請求項３】
請求項１記載の深度カメラ・システムにおいて、
前記第１センサーの画素が前記第２センサーの画素よりも低量子効率を有するために、前記第１センサーの画素が、前記第２センサーの画素よりも光に対して低感度である、深度カメラ・システム。
【請求項４】
請求項１記載の深度カメラ・システムにおいて、
前記第２センサーが前記第１センサーよりも小さい画素サイズを有するために、前記第２センサーが、前記第１センサーよりも大きい空間解像度を有する、深度カメラ・システム。
【請求項５】
深度カメラ・システムであって、
視野内にある物体を、構造化光のパターンで照明する照明装置と、
前記物体からの反射光を検知して、画素データーの第１フレームを得る第１センサーであって、前記照明装置から第１基準線距離ＢＬ１に位置する第１センサーと、
前記物体からの反射光を検知して、画像データーの第２フレームを得る第２センサーであって、前記照明装置から第２基準線距離ＢＬ２に位置し、前記第１センサーよりも小さい画素サイズを有するために、前記第１センサーよりも大きい空間解像度を有する、第２センサーと、
命令を格納するメモリーと、
前記命令を実行するプロセッサーであって、
前記照明装置の照明フレームにおいて前記画素データーの第１フレームを前記構造化光のパターンと比較することによって、前記第１センサーの軸に沿った前記物体の深度値を含む第１構造化光深度マップを導き出し、
前記照明装置の照明フレームにおいて前記画素データーの第２フレームを前記構造化光のパターンと比較することによって、前記第２センサーの軸に沿った前記物体の深度値を含む第２構造化光深度マップを導き出し、
前記画素データーの第１フレームの前記画素データーの第２フレームに対する立体照合によって、前記第１センサーの軸に沿った前記物体の深度値を含む第１立体深度マップを導き出し、前記第１センサーの画素サイズに基づく重みｗ３によって前記第１センサーの前記軸に沿った前記物体の前記深度値を重み付け、
前記画素データーの第２フレームの前記画素データーの第１フレームに対する立体照合によって、前記第２センサーの軸に沿った前記物体の深度値を含む第２立体深度マップを導き出し、前記第２センサーの画素サイズに基づく重みｗ４によって前記第２センサーの前記軸に沿った前記物体の前記深度値を重み付け、
前記物体の前記第１及び第２構造化光深度マップと前記物体の前記第１及び第２立体深度マップに基づく合体深度マップを導き出す、
プロセッサーと、
を備えている、深度カメラ・システム。
【請求項６】
請求項５記載の深度カメラ・システムにおいて、前記プロセッサーは、前記命令を実行して、
ＢＬ１に比例する重みｗ１によって前記物体の前記第１構造化光深度マップにおける前記深度値を重み付け、
ＢＬ２に比例する重みｗ２によって前記物体の前記第２構造化光深度マップにおける前記深度値を重み付け、
前記重みｗ１によって重み付けされた前記深度値、前記重みｗ２によって重み付けされた前記深度値、前記重みｗ３によって重み付けされた前記深度値、及び前記重みｗ４によって重み付けされた前記深度値に基づいて、前記合体深度マップを導き出す、深度カメラ・システム。
【請求項７】
請求項５記載の深度カメラ・システムにおいて、前記プロセッサーは、前記命令を実行して、
前記第１センサーの画素サイズに基づく重みｗ１によって前記物体の前記第１構造化光深度マップにおける前記深度値を重み付け、
前記第２センサーの画素サイズに基づく重みｗ２によって前記物体の前記第２構造化光深度マップにおける前記深度値を重み付け、
前記重みｗ１によって重み付けされた前記深度値、前記重みｗ２によって重み付けされた前記深度値、前記重みｗ３によって重み付けされた前記深度値、及び前記重みｗ４によって重み付けされた前記深度値に基づいて、前記合体深度マップを導き出す、
深度カメラ・システム。
【請求項８】
請求項５記載の深度カメラ・システムにおいて、前記プロセッサーは、前記命令を実行して、
重みｗ１によって前記物体の前記第１構造化光深度マップにおける前記深度値を重み付け、
重みｗ２によって前記物体の前記第２構造化光深度マップにおける前記深度値を重み付け、
前記重みｗ１によって重み付けされた前記深度値、前記重みｗ２によって重み付けされた前記深度値、前記重みｗ３によって重み付けされた前記深度値、及び前記重みｗ４によって重み付けされた前記深度値に基づいて、前記合体深度マップを導き出し、
前記重みｗ１及びｗ２はそれぞれ前記第１構造化光深度マップ及び前記第２構造化光深度マップに関連する信頼性尺度又は精度尺度の少なくとも１つに基づいて割り当てられる、
深度カメラ・システム。
【請求項９】
深度カメラ・システムにおいて画像データーを処理する方法であって、
視野の中にある物体を、構造化光のパターンによって照明するステップと、
第１センサーにおいて、前記物体からの反射光を検知して、複数の画素を含む第１フレームを得るステップと、
第２センサーにおいて、前記物体からの反射光を検知して、複数の画素を含む第２フレームを得るステップと、
照明装置の照明フレームにおいて前記第１フレームの前記複数の画素の各画素を前記構造化光のパターンと比較することによって、前記第１フレームの前記複数の画素の各画素について前記第１センサーの軸に沿った前記物体の深度値を含む第１構造化光深度マップを導き出すステップと、
前記照明装置の照明フレームにおいて前記第２フレームの前記複数の画素の各画素を前記構造化光のパターンと比較することによって、前記第２フレームの前記複数の画素の各画素について前記第２センサーの軸に沿った前記物体の深度値を含む第２構造化光深度マップを導き出すステップと、
前記第１フレームの前記複数の画素の各画素を前記構造化光のパターンと比較することに基づいて、前記第１フレームの画素の１つの部分集合が前記構造化光のパターンに一致していないことを示す、画素の深度値がヌル又はデフォルト値である前記第１フレームの画素の１つの部分集合を特定し、前記第１フレームの画素の別の部分集合が前記構造化光のパターンに一致していることを示す、画素の深度値がヌル又はデフォルト値でない前記第１フレームの画素の別の部分集合を特定するステップと、
前記第１フレームの画素の前記１つの部分集合に含まれる各画素を前記第２フレームに対して立体照合して、第１立体深度マップにおける前記第１センサーの前記軸に沿った前記物体の深度値を提供するステップと、
前記第１フレームの画素の前記別の部分集合に含まれる各画素を前記第２フレームに対して立体照合せず、それによって、前記第１フレームにおいて、前記第１フレームの画素の前記１つの部分集合に対してのみ立体照合が実施されるようにするステップと、
前記第１立体深度マップと前記第１及び第２構造化光深度マップとに基づいて合体深度マップを提供するステップと、
を含む方法。
【請求項１０】
請求項９記載の方法において、
前記第１フレームの画素の前記１つの部分集合が成功的に前記構造化光のパターンに一致しなかった場合に、前記第１フレームの画素の前記１つの部分集合の深度値がヌルである、又はデフォルト値を含む、方法。
【請求項１１】
請求項９記載の方法において、
前記第１フレームの画素の前記１つの部分集合が、閾値信頼性尺度を超える信頼性尺度又は閾値精度尺度を超える精度尺度のうち少なくとも１つを有する前記構造化光のパターンに一致しなかった場合に、前記第１フレームの画素の前記１つの部分集合の深度値がヌルである、又はデフォルト値を含む、方法。
【請求項１２】
請求項９記載の方法において、前記第１および第２センサー間の基準線距離が、前記第１センサーと前記照明装置との間の基準線距離よりも長く、前記第２センサーと前記照明装置との間の基準準線距離よりも長い、方法。
【請求項１３】
請求項９記載の方法において、
（ａ）前記第２フレームの画素の１つの部分集合の深度値が閾値距離を超える、又は（ｂ）前記第２フレームの画素の１つの部分集合の深度値がヌルである若しくはデフォルト値を含む、のうちの少なくとも１つを判定することに応答して、前記第２フレームの画素の前記１つの部分集合を前記第１フレームに対して立体照合して、前記第２センサーの前記軸に沿った前記物体の深度値を含む第２立体深度マップを提供するステップと、前記第２立体深度マップに基づいて前記合体深度マップを提供するステップと、を更に含む、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  リアル・タイム深度カメラは、このカメラの視野内にある人または物体までの距離を判定し、このカメラのフレーム・レートに基づいて実質的にリアル・タイムにこの距離を更新することができる。このような深度カメラは、例えば、物理空間における人間の身体または他の被写体の位置および動きに関するデーターを得るために、モーション・キャプチャー・システムにおいて用いることができ、そしてこのデーターを計算システムにおけるアプリケーションへの入力として用いることができる。軍事、娯楽、スポーツ、および医療目的のためというように、多くの用途が可能である。通例、深度カメラは視野を照明する照明装置と、画像を形成するために視野からの光を検知する画像センサーとを含む。しかしながら、発光状態、表面模様および色、ならびに遮蔽の潜在的可能性というような変数(variables)のために、種々の課題が存在する。
【発明の概要】
【０００２】
[0002]  深度カメラ・システムを提供する。この深度カメラ・システムは、少なくとも２つの画像センサーと、ならびに構造化光画像処理および立体画像処理の組み合わせとを用いて、場面の深度マップを実質的にリアル・タイムで求める。深度マップは、センサーによって取り込まれる画素データーの新たなフレーム毎に更新することができる。更に、画像センサーを照明装置から異なる距離に取り付けることができ、異なる特性を有することができ、遮蔽の可能性を低下させつつ、一層精度が高い深度マップを求めることが可能になる。
【０００３】
[0003]  一実施形態では、深度カメラ・システムは、あるパターンの構造化光で視野内にある物体を照明する照明装置と、少なくとも第１および第２のセンサーと、少なくとも１つの制御回路とを含む。第１センサーは、物体からの反射光を検知して、画素データーの第１フレームを得て、短い距離の撮像に対して最適化される。この最適化は、例えば、第１センサーと照明装置との間における比較的短い距離、あるいは第１センサーの光に対する比較的短い露出時間、低い空間解像度、および／または低い感度に関して実現することができる。更に、深度カメラ・システムは、物体からの反射光を検知して、画素データーの第２フレームを得る第２センサーも含み、この第２センサーは長い距離の撮像に対して最適化される。この最適化は、例えば、第２センサーと照明装置との間における相対的に長い距離、あるいは第２センサーの光に対する比較的長い露出時間、高い空間解像度、および／または高い感度に関して実現することができる。
【０００４】
[0004]  更に、深度カメラ・システムは少なくとも１つの制御回路を含む。この制御回路は、センサーおよび照明装置と共通の筐体内、および／または計算環境のような別のコンポーネント内に配することができる。少なくとも１つの制御回路は、画素データーの第１フレームを構造化光のパターンと比較することによって、物体の第１構造化光深度マップを導き出し、画素データーの第２フレームを構造化光のパターンと比較することによって物体の第２構造化光深度マップを導き出し、第１および第２構造化光深度マップに基づいて、合体深度マップを導き出す。各深度マップは、画素の格子におけるような、画素位置毎に深度値を含むことができる。
【０００５】
[0005]  他の態様では、深度値を見直す(refine)ために、立体画像処理も用いる。立体画像処理の使用を誘起するのは、画素データーの第１および／または第２フレームの１つ以上の画素を、構造化光のパターンと一致させることができなかったとき、または、深度値が長い距離を示し、例えば、高い精度を達成するためには基線を長くする必要があるときとするとよい。このように、不要な処理ステップを回避するために、必要なときにだけ、深度値の更なる見直し(refinement)が行われる。
【０００６】
[0006]  場合によっては、センサーによって求めた深度値に、センサーの特性に基づいた重み、および／または深度値の信頼性の度合いに基づく精度尺度を割り当てることもできる。
【０００７】
[0007]  最終的な深度マップは、モーション・キャプチャー・システムにおけるアプリケーションへの入力として用いることができ、この場合、物体は、モーション・キャプチャー・システムによって追跡される人であり、アプリケーションは、アバターを動かす、画面上メニューをナビゲートする、または他の何らかの動作を実行することによるというようにして、この人のジェスチャーまたは動きに応答して、モーション・キャプチャー・システムのディスプレイを変化させる。
【０００８】
[0008]  この摘要は、詳細な説明の章において以下で更に説明する概念から選択したものを簡略化された形式で紹介するために、設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使用されることを意図するのでもない。
【０００９】
[0009]  図面において、同様の番号を振られたエレメントは互いに対応するものとする。
【図面の簡単な説明】
【００１０】
【図１】図１は、モーション・キャプチャー・システムの一実施形態例を示す。
【図２】図２は、図１のモーション・キャプチャー・システムのブロック図例を示す。
【図３】図３は、図１のモーション・キャプチャー・システムにおいて用いることができる計算環境のブロック図例を示す。
【図４】図４は、図１のモーション・キャプチャー・システムにおいて用いることができる他の計算環境のブロック図例である。
【図５Ａ】図５Ａは、構造化光システムにおける照明フレームおよび取り込みフレームを示す。
【図５Ｂ】図５Ｂは、立体光システムにおいて取り込まれた２つのフレームを示す。
【図６Ａ】図６Ａは、照明装置の同じ側(common side)に２つのセンサーを有する撮像コンポーネントを示す。
【図６Ｂ】図６Ｂは、照明装置の一方側に２つのセンサー、そして照明装置の反対側に１つのセンサーを有する撮像コンポーネントを示す。
【図６Ｃ】図６Ｃは、照明装置の同じ側に３つのセンサーを有する撮像コンポーネントを示す。
【図６Ｄ】図６Ｄは、照明装置の対向する両側に２つのセンサーを有する撮像コンポーネントを示し、これら２つのセンサーがどのように物体の異なる部分を検知するかを示す。
【図７Ａ】図７Ａは、視野の深度マップを得るためのプロセスを示す。
【図７Ｂ】図７Ｂは、２つの構造化光深度マップを合体する、図７Ａのステップ７０６の更なる詳細を示す。
【図７Ｃ】図７Ｃは、２つの構造化光深度マップおよび２つの立体深度マップを合体する、図７Ａのステップ７０６の更なる詳細を示す。
【図７Ｄ】図７Ｄは、立体照合を用いて必要に応じて深度値を見直す、図７Ａのステップ７０６の更なる詳細を示す。
【図７Ｅ】図７Ｅは、立体照合を用いて必要に応じて合体深度マップの深度値を見直す、図７Ａのステップ７０６に対する他の手法の更なる詳細を示す。
【図８】図８は、図７Ａのステップ７０８において明記したように、制御入力を用いて人間ターゲットを追跡する方法例を示す。
【図９】図９は、図８のステップ８０８において明記したような人間ターゲットのモデル例を示す。
【発明を実施するための形態】
【００１１】
[0027]  視野における１つ以上の物体を追跡するときに用いられる深度カメラを提供する。一実施態様では、この深度カメラは、人間のユーザーを追跡するためにモーション追跡システムにおいて用いられる。深度カメラは２つ以上のセンサーを含む。これらのセンサーは、照明条件、表面模様および色、ならびに遮蔽の潜在的可能性というような変数に対処する(address)ように最適化される。この最適化は、互いに対するそして照明装置に対するセンサー配置の最適化、ならびにセンサーの空間解像度、感度、および露出時間の最適化を含むことができる。また、この最適化は、画素データーのフレームを構造化光のパターンと照合することによって、および／または画素データーのフレームを他のフレームと照合することによってというような、深度マップ・データーをどのように得るかについての最適化も含むことができる。
【００１２】
[0028]  本明細書において記載するような多数のセンサーの使用によって、他の手法に対する利点が得られる。例えば、ステレオ・カメラ以外のリアル・タイム深度カメラは、２−Ｄマトリクスに埋め込み可能な深度マップを供給することが多い。このようなカメラは、２．５Ｄカメラと呼ばれることもある。何故なら、これらのカメラは通常１つの撮像デバイスを用いて深度マップを抽出するので、遮蔽されている物体については何の情報も与えられないからである。ステレオ深度カメラは、２つ以上のセンサーには見ることができる場所の、どちらかと言うと粗い(sparse)情報を得る傾向がある。また、これらは、白い壁のような、滑らかで模様がない表面を撮像するときには、正常に動作しない。深度カメラの中には、構造化光を用いて、撮像デバイスとしてのセンサーとこのセンサーから離れた投光デバイスとしての照明装置との間の視差によって生ずる歪みを測定／特定するものがある。この手法は、本質的に、センサーには見ることができるが照明装置には見ることができない陰になる場所のために、情報が欠落した深度マップを生成する。加えて、外部光が、構造化パターンをカメラには見えないようにすることもあり得る。
【００１３】
[0029]  以上に述べた欠点は、２つ以上のセンサーのコンステレーション(constellation)を１つの照明デバイスと共に用いて、３つの深度カメラを用いているかのように、効果的に３Ｄサンプルを抽出することによって克服することができる。２つのセンサーは、構造化光パターンと照合することによって、深度データーを供給することができ、一方、ステレオ技術を適用することによって２つのセンサーからの２つの画像を照合することによって、第３のカメラが得られる。データー・フュージョン(data fusion)を適用することによって、３Ｄ測定値のロバスト性を高めることができ、このロバスト性はカメラ間の混乱に対するロバスト性を含む。２つのセンサーを１つの投光器と共に用いることによって、２つの深度マップを形成する。構造化光技術を用い、構造化光技術をステレオ技術と組み合わせ、以上のことをフュージョン・プロセスにおいて用いて、遮蔽を減らしロバスト性を高めた３Ｄ画像を形成する(achieve)。
【００１４】
[0030]  図１は、人間８が、ユーザーの自宅においてというように、アプリケーションと対話処理する、モーション・キャプチャー・システム１０の一実施形態例を示す。モーション・キャプチャー・システム１０は、ディスプレイ１９６、深度カメラ・システム２０、および計算環境または装置１２を含む。深度カメラ・システム２０は、赤外線（ＩＲ）光放射源のような照明装置２６を含む撮像コンポーネント２２と、赤外線カメラのような撮像センサー２６と、カラー（赤−緑−青、ＲＧＢ）カメラ２８とを含むことができる。ユーザーとも呼ぶ人間(human)８、人(person)、またはプレーヤーのような１つ以上の物体が、深度カメラの視野６の中で起立している。線２および４は、視野６の境界を示す。この例では、深度カメラ・システム２０、および計算環境１２は、ディスプレイ１９６上のアバター１９７が人間８の動きを追跡するアプリケーションを設ける。例えば、人間が腕を上げると、アバターも腕を上げることができる。アバター１９７は、３Ｄ仮想世界の中にある道路１９８上で起立している。深度カメラ・システム２０の焦点距離に沿って、例えば、水平に延びるｚ軸と、垂直に延びるｙ軸と、横方向に水平に延びるｘ軸とを含む、デカルト世界座標系を定義することができる。尚、図の視点(perspective)は簡略化として修正されており、ディスプレイ１９６はｙ軸方向に垂直に延び、ｚ軸は深度カメラ・システムから外側に、ｙ軸およびｘ軸に垂直に、そしてユーザー８が起立している地面に対して平行に延びる。
【００１５】
[0031]  一般に、モーション・キャプチャー・システム１０は、１つ以上の人間ターゲットを認識、分析、および／または追跡するために用いられる。計算環境１２は、コンピューター、ゲーミング・システムまたはコンソール等、ならびにアプリケーションを実行するためのハードウェア・コンポーネントおよび／またはソフトウェア・コンポーネントを含むことができる。
【００１６】
[0032]  深度カメラ・システム２０は、人間８のような1人以上の人を仮想的に監視し、この人間が行うジェスチャーおよび／または動きを取り込み、分析し、追跡して、アバターまたは画面上のキャラクターを動かす(animate)、あるいはユーザー・インターフェース（ＩＵ）においてメニュー項目を選択するというような、アプリケーション内における１つ以上の制御または動作を実行することができる。深度カメラ・システム２０については、以下で更に詳しく論ずる。
【００１７】
[0033]  モーション・キャプチャー・システム１０は、ディスプレイ１９６、例えば、テレビジョン、モニター、高品位テレビジョン（ＨＤＴＶ）等のようなオーディオビジュアル・デバイス、あるいは壁または他の表面上にあり視覚出力および聴覚出力をユーザーに供給する投光器(projection)にでも接続することができる。オーディオ出力は、別個のデバイスを通じて供給することもできる。ディスプレイを駆動するために、計算環境１２は、グラフィクス・カードのようなビデオ・アダプター、および／またはサウンド・カードのようなオーディオ・アダプタを含むことができ、アプリケーションに関連のあるオーディオビジュアル信号を供給する。ディスプレイ１９６を計算環境１２に接続することもできる。
【００１８】
[0034]  深度カメラ・システム２０を用いて人間８を追跡し、このユーザーのジェスチャーおよび／または動きを取り込む。このジェスチャーおよび／または動きは、アバターまたは画面上のキャラクターを動かすために用いられ、更に計算環境１２が実行しているアプリケーションに対する入力制御として解釈される。
【００１９】
[0035]  人間８の動きの中には、アバターを制御する以外の動作に対応することもできる制御として解釈するとよいものもある。例えば、一実施形態では、プレーヤーが動きを用いてゲームを終了させる、一時中止する、または保存する、レベルを選択する、高得点を見る、友人と通信する等を行うことができる。プレーヤーは、動きを用いて主ユーザー・インターフェースからゲームまたは他のアプリケーションを選択すること、あるいはそれ以外では選択肢のメニューをナビゲートすることができる。このように、人間８の最大範囲の運動(motion)が利用可能であり、アプリケーションと対話処理するために適したやり方であればそのいずれでも、用いて分析することができる。
【００２０】
[0036]  モーション・キャプチャー・システム１０は、更に、ターゲットの動きをオペレーティング・システムおよび／またはアプリケーションの制御として解釈するためにも用いることができる。この制御は、ゲームや娯楽およびレジャーを意図した他のアプリケーションの範囲外になる。例えば、オペレーティング・システムおよび／またはアプリケーションの事実上あらゆる制御可能な態様を、人間８の動きによって制御することができる。
【００２１】
[0037]  図２は、図１ａのモーション・キャプチャー・システム１０のブロック図例を示す。深度カメラ・システム２０は、例えば、飛行時間、構造化光、立体画像等を含むいずれかの適した技法によって、深度値を含むことができる深度画像を含む深度情報と共にビデオを取り込むように構成することができる。深度カメラ・システム２０は、深度情報を「Ｚレイヤー」、即ち、深度カメラからその視線に沿って延びるＺ軸に対して垂直となることができるレイヤーに編成することができる。
【００２２】
[0038]  深度カメラ・システム２０は、物理空間における場面の深度画像を取り込む撮像コンポーネント２２を含むことができる。深度画像または深度マップは、取り込んだ場面の二次元（２−Ｄ）画素エリアを含むことができ、この２−Ｄ画素エリアにおける各画素には、撮像コンポーネント２２から物体までの直線距離を表す深度値が関連付けられており、これによって３−Ｄ深度画像を供給する。
【００２３】
[0039]  撮像コンポーネント２２には種々の構成が可能である。１つの手法では、撮像コンポーネント２２は、照明装置２６、第１撮像センサー（Ｓ１）２４、第２撮像センサー（Ｓ２）２９、および可視光カメラ２８を含む。センサーＳ１およびＳ２は、場面の深度画像を取り込むために用いることができる。１つの手法では、照明装置２６は赤外線（ＩＲ）光放射源であり、第１および第２センサーは赤外線光センサーである。３−Ｄ深度カメラは、照明装置２６と１つ以上のセンサーの組み合わせによって形成されている。
【００２４】
[0040]  深度マップは、種々の技法を用いて、各センサーによって得ることができる。例えば、深度カメラ・システム２０は、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン化光（即ち、格子パターン、縞パターンというような、既知のパターンとして表示される光）を、照明装置２６によって画面上に投光する。場面の中にある１つ以上のターゲットまたは物体の表面に衝突すると、パターンは応答して歪むと考えられる。このようなパターンの変形を、例えば、センサー２４または２９および／またはカラー・カメラ２８によって取り込むことができ、次いでこれを分析して、深度カメラ・システムからターゲットまたは物体上の特定の場所までの物理的距離を判定することができる。
【００２５】
[0041]  可能な１つの手法では、センサー２４および２９を照明装置２６の対向する両側に、照明装置から異なる基準線距離のところに位置付ける。例えば、センサー２４を照明装置２６から距離ＢＬ１のところに位置付け、センサー２９を照明装置２６から距離ＢＬ２のところに位置付ける。センサーと照明装置との間の距離は、これらセンサーおよび照明装置の、光軸のような、中心点間の距離に関して表現するとよい。照明装置の対向する両側にセンサーを有することの１つの利点は、視野内における物体の遮蔽エリアを減らすまたはなくすことができることである。何故なら、これらのセンサーは異なる視点から物体を見るからである。また、センサーを相対的に照明装置の方に近づけて配置することによって、視野の中で近い方にある物体を見るために、このセンサーを最適化することができ、一方センサーを相対的に照明装置から遠ざけて配置することによって、視野の中で遠い方にある物体を見るために他方のセンサーを最適化することができる。例えば、ＢＬ２＞ＢＬ１とすると、センサー２４は、短い距離の撮像に最適化するように考慮することができ、一方センサー２９は、長い距離の撮像に最適化するように考慮することができる。１つの手法では、センサー２４および２９が、照明装置を通過する共通線に沿って配置されるように、これらを同一直線上に配することができる。しかしながら、センサー２４および２９の位置付けに関しては、他の構成も可能である。
【００２６】
[0042]  例えば、前述のセンサーは、走査しようとしている物体周囲の円周上に配置すること、またはホログラムを投射しようとする場所の周囲に配置することもできる。また、物体の周囲に多数の深度カメラ・システムを配置し、各々に照明装置およびセンサーを持たせることも可能である。これによって、物体の異なる側を見ることが可能となり、物体を中心とする回転映像(rotating view)を供給することができる。多くの深度カメラを用いる程、これによって物体の見える領域が更に広がる。２つの深度カメラを有し、１つを物体の前側に、もう１つを物体の後ろ側に置くと、これら自体の照明で互いに見えなくならない限り、互いに狙い合うことができる。各深度カメラは、それ自体の構造化光パターンが物体から反射したものを検知することができる。他の例では、２つの深度カメラを、互いに９０度の角度で配置する。
【００２７】
[0043]  深度カメラ・システム２０は、３−Ｄ深度カメラ２２と通信するプロセッサー３２を含むことができる。プロセッサー３２は、標準プロセッサー、特殊プロセッサー、マイクロプロセッサー等を含むことができ、例えば、深度画像を受け取る命令、この深度画像に基づいてボクセルの格子を生成する命令、ボクセルの格子に含まれる背景を除去して、人間のターゲットと関連のある１つ以上のボクセルを分離する命令、この分離した人間ターゲットの１つ以上の端部(extremities)の位置(location or position)を判定する命令、1つ以上の端部の位置に基づいてモデルを調節する命令、あるいは他のあらゆる適した命令を含む。これについては、以下で更に詳しく説明する。
【００２８】
[0044]  プロセッサー３２は、構造化光深度マップを導き出すソフトウェア３３、立体視深度マップを導き出すソフトウェア３４、および深度マップ合体計算を実行するソフトウェア３５を用いるために、メモリー３１にアクセスすることができる。プロセッサー３２は、画素データーのフレームを、照明面内に照明装置によって放出される構造化光のパターンと比較することによって、物体の構造化光深度マップを導き出す、少なくとも１つの制御回路であると考えることができる。例えば、少なくとも１つの制御回路は、ソフトウェア３３を用いて、センサー２４によって得た画素データーの第１フレームを、照明装置２６によって放出された構造化光のパターンと比較することによって、物体の第１構造化光深度マップを導き出し、センサー２９によって得た画素データーの第２フレームを構造化光のパターンと比較することによって、物体の第２構造化光深度マップを導き出すことができる。少なくとも１つの制御回路は、ソフトウェア３５を用いて、第１および第２構造化光深度マップに基づく、合体深度マップを導き出すことができる。構造化光深度マップについては、例えば、図５Ａに関係付けて以下で更に論ずることにする。
【００２９】
[0045]  また、少なくとも１つの制御回路は、ソフトウェア３４を用いて、センサー２４によって得た画素データーの第１フレームと、センサー２９によって得た画素データーの第２フレームとの立体照合によって、物体の少なくとも第１立体深度マップを導き出し、更に、画素データーの第２フレームと画素データーの第１フレームとの立体視照合によって、物体の少なくとも第２立体深度マップを導き出すことができる。ソフトウェア２５は、１つ以上の構造化光深度マップおよび／または立体深度マップを合体することができる。立体深度マップについては、例えば、図５Ｂに関係付けて以下で更に論ずることにする。
【００３０】
[0046]  少なくとも１つの制御回路は、プロセッサー１９２または他のいずれかのプロセッサーというような、深度カメラ・システム外部のプロセッサーによって設けることもできる。少なくとも１つの制御回路は、メモリー３１からソフトウェアにアクセスすることができる。メモリー３１は、例えば、本明細書において記載する深度カメラ・システムにおいて画像データーを処理する方法を実行するように、少なくとも１つのプロセッサーまたはコントローラー３２をプログラミングするためのコンピューター読み取り可能ソフトウェアが具体化されている有形コンピューター読み取り可能ストレージであることができる。
【００３１】
[0047]  メモリー３１は、プロセッサー３２によって実行する命令を格納するだけでなく、前述のセンサーまたはカラー・カメラによって取り込んだ画素データー３６のフレームというような画像を格納することもできる。例えば、メモリー３１は、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリー・メモリー（ＲＯＭ）、キャッシュ、フラッシュ・メモリー、ハード・ディスク、または他の適した有形コンピューター読み取り可能記憶コンポーネントであればいずれでも含むことができる。メモリー・コンポーネント３１は、バス２１を介して画像キャプチャー・コンポーネント２２およびプロセッサー３２と通信する別個のコンポーネントであってもよい。他の実施形態によれば、メモリー・コンポーネント３１をプロセッサー３２および／または画像キャプチャー・コンポーネント２２に統合してもよい。
【００３２】
[0048]  深度カメラ・システム２０は、有線および／またはワイヤレス接続というような、通信リンク３７を通じて、計算環境１２と通信することもできる。計算環境１２は、クロック信号を深度カメラ・システム２０に通信リンク３７を通じて供給することができる。このクロック信号は、深度カメラ・システム２０の視野内にある物理空間からいつ画像データーを取り込むのかを示す。
【００３３】
[0049]  加えて、深度カメラ・システム２０は、例えば、撮像センサー２４および２９および／またはカラー・カメラ２８によって取り込んだ深度情報および画像、および／または深度カメラ・システム２０によって生成することができるスケルトン・モデルを、計算環境１２に通信リンク３７を通じて供給することもできる。次いで、計算環境１２は、このモデル、深度情報、および取り込んだ画像を用いて、アプリケーションを制御することができる。例えば、図２に示すように、計算環境１２は、ジェスチャー・フィルターの集合体のような、ジェスチャー・ライブラリー１９０を含むことができる。各ジェスチャー・フィルターは、（ユーザーが動くと）スケルトン・モデルによって行うことができるジェスチャーに関する情報を有する。例えば、ジェスチャー・フィルターは、手の打撃(swiping)または投げる動作(flinging)というような、種々の手のジェスチャー毎に設けることができる。検出した動き(motion)を各フィルターと比較することによって、人が行った指定ジェスチャーまたは動きを特定することができる。動きを行う範囲も判定することができる。
【００３４】
[0050]  深度カメラ・システム２０によってスケルトン・モデルの形態で取り込まれたデーター、およびそれに付随する動きは、ジェスチャー・ライブラリー１９０においてジェスチャー・フィルターと比較され、いつユーザー（スケルトン・モデルによって表される）が１つ以上の特定の動きを行ったのか特定することができる。これらの動きには、アプリケーションの種々の制御と関連付けることができる。
【００３５】
[0051]  また、この計算環境は、プロセッサー１９２も含むことができる。プロセッサー１９２は、メモリー１９４に格納されている命令を実行し、オーディオ−ビデオ出力信号をディスプレイ・デバイス１９６に供給し、更に本明細書において記載するその他の機能を遂行する。
【００３６】
[0052]  図３は、図１のモーション・キャプチャー・システムにおいて用いることができる計算環境のブロック図例を示す。この計算環境は、１つ以上のジェスチャーまたはその他の動きを解釈し、それに応答してディスプレイ上の視覚空間を更新するために用いることができる。先に説明した計算環境１２のような計算環境は、ゲーミング・コンソールのようなマルチメディア・コンソール１００を含むことができる。マルチメディア・コンソール１００は、レベル１キャッシュ１０２、レベル２キャッシュ１０４、およびフラッシュＲＯＭ（リード・オンリー・メモリー）１０６を有する中央演算装置（ＣＰＵ）１０１を有する。レベル１キャッシュ１０２およびレベル２キャッシュ１０４は、一時的にデーターを格納し、こうしてメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させる。１つよりも多いコア、つまり、追加のレベル１およびレベル２キャッシュ１０２および１０４を有するＣＰＵ１０１を設けることもできる。フラッシュＲＯＭのようなメモリー１０６は、マルチメディア・コンソール１００の電源をオンにしたときに、ブート・プロセスの初期段階中にロードされる実行可能コードを格納することができる。
【００３７】
[0053]  グラフィクス処理ユニット（ＧＰＵ）１０８およびビデオ・エンコーダー／ビデオ・コデック（コーダー／デコーダー）１１４は、高速および高分解能グラフィクス処理のためにビデオ処理パイプラインを形成する。データーは、バスを通じて、グラフィクス処理ユニット１０８からビデオ・エンコーダー／ビデオ・コデック１１４に伝達される。ビデオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、データーをＡ／Ｖ（オーディオ／ビデオ）ポート１４０に出力する。メモリー・コントローラー１１０がＧＰＵ１０８に接続されており、ＲＡＭ（ランダム・アクセス・メモリー）のような、種々のタイプのメモリー１１２にプロセッサーがアクセスし易くしている。
【００３８】
[0054]  マルチメディア・コンソール１００は、Ｉ／Ｏコントローラー１２０、システム管理コントローラー１２２、オーディオ処理ユニット１２３、ネットワーク・インターフェース１２４、第１ＵＳＢホスト・コントローラー１２６、第２ＵＳＢコントローラー１２８、およびフロント・パネルＩ／Ｏサブアセンブリ１３０を含む。好ましくは、これらをモジュール１１８上に実装する。 ＵＳＢコントローラー１２６および１２８は、周辺コントローラー１４２（１）〜１４２（２）、ワイヤレス・アダプター１４８、および外部メモリー・デバイス１４６（例えば、フラッシュ・メモリー、外部ＣＤ／ＤＶＤ  ＲＯＭドライブ、リムーバブル媒体等）のためのホストとしての役割を果たす。ネットワーク・インターフェース（ＮＷ  ＩＦ）１２４および／またはワイヤレス・アダプター１４８は、ネットワーク（例えば、インターネット、ホーム・ネットワーク等）へのアクセスを提供し、イーサネット（登録商標）・カード、モデム、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール、ケーブル・モデム等を含む広範囲の種々の有線またはワイヤレス・アダプター・コンポーネントの内いずれであってもよい。
【００３９】
[0055]  システム・メモリー１４３は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ１４４が設けられており、ＤＶＤ／ＣＤドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブ等を備えることができる。メディア・ドライブ１４４は、マルチメディア・コンソール１００の内部にあっても外部にあってもよい。アプリケーション・データーは、実行、再生等のためにマルチメディア・コンソール１００によってメディア・ドライブ１４４を通じてアクセスすることができる。メディア・ドライブ１４４は、シリアルＡＴＡバスまたはその他の高速接続のようなバスを通じて、Ｉ／Ｏコントローラー１２０に接続されている。
【００４０】
[0056]  システム管理コントローラー１２２は、メディア・コンソール１００が利用可能であることの確保に関する種々のサービス機能を提供する。オーディオ処理ユニット１２３およびオーディオ・コデック１３２は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオ・データーは、通信リンクを通じて、オーディオ処理ユニット１２３とオーディオ・コデック１３２との間で伝達される。オーディオ処理パイプラインは、外部オーディオ・プレーヤーまたはオーディオ処理能力を有するデバイスによる再生のために、データーをＡ／Ｖポート１４０に出力する。
【００４１】
[0057]  フロント・パネルＩ／Ｏサブアセンブリ１３０は、電力ボタン１５０およびイジェクト・ボタン１５２の機能をサポートするだけでなく、マルチメディア・コンソール１００の外面上に露出するあらゆるＬＥＤ（発光ダイオード）またはその他のインディケーターもサポートする。システム電源モジュール１３６が、マルチメディア・コンソール１００のコンポーネントに電力を供給する。ファン１３８は、マルチメディア・コンソール１００内部にある回路を冷却する。
【００４２】
[0058]  ＣＰＵ１０１、ＧＰＵ１０８、メモリー・コントローラー１１０、およびマルチメディア・コンソール１００内部にある種々のその他のコンポーネントは、１系統以上のバスを通じて相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、周辺バス、ならびに種々のバス・アーキテクチャーのいずれかを用いるプロセッサー・バスまたはローカル・バスが含まれる。
【００４３】
[0059]  マルチメディア・コンソール１００の電源を入れると、システム・メモリー１４３からメモリー１１２および／またはキャッシュ１０２、１０４にアプリケーション・データーをロードし、ＣＰＵ１０１において実行することができる。アプリケーションは、グラフィカル・ユーザー・インターフェースを提示することができる。グラフィカル・ユーザー・インターフェースは、マルチメディア・コンソール１００において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび／またはメディア・ドライブ１４４に含まれている他のメディアをメディア・ドライブ１４４から起動または再生して、マルチメディア・コンソール１００に追加の機能を設けることもできる。
【００４４】
[0060]  マルチメディア・コンソール１００は、単に本システムをテレビジョンまたはその他のディスプレイに接続することによって、スタンドアロン・システムとして動作させることができる。この単独モードでは、マルチメディア・コンソール１００は、一人以上のユーザーがシステムと相互作用を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワーク・インターフェース１２４またはワイヤレス・アダプター１４８によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディア・コンソール１００を更に大きなネットワーク・コミュニティにおける一部(participant)として動作させることもできる。
【００４５】
[0061]  マルチメディア・コンソール１００の電源を入れると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー（例えば、１６ＭＢ）、ＣＰＵおよびＧＰＵサイクル（例えば、５％）、ネットワーク動作帯域幅（例えば、８ｋｂｓ）等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。
【００４６】
[0062]  特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを含めるのに十分大きいことが好ましい。確保されているＣＰＵの使用がそのシステム・アプリケーションによって用いられない場合、アイドル状態にあるスレッドがいずれかの未使用サイクルを消費するようにして、ＣＰＵの確保を一定レベルに維持することが好ましい。
【００４７】
[0063]  ＧＰＵの確保に関して、ＧＰＵ割り込みを用いることによって、システム・アプリケーション（例えば、ポップアップ）が生成する軽量メッセージを表示して、ポップアップをオーバーレイにレンダリングするコードをスケジューリングする。オーバーレイに用いられるメモリー量は、オーバーレイのエリア・サイズに応じて異なり、オーバーレイは画面の解像度と共に拡縮する(scale)ことが好ましい。コンカレント・システム・アプリケーションによってフル・ユーザー・インターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更しＴＶの同期を取り直す必要性をなくすように、スケーラーを用いてこの解像度を設定するとよい。
【００４８】
[0064]  マルチメディア・コンソール１００がブートして、システム・リソースを確保した後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステム・リソースの内部で実行する１組のシステム・アプリケーションの中にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、ゲーミング・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点にそして所定の間隔でＣＰＵ１０１において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソールにおいて実行しているゲーミング・アプリケーションに対するキャッシュの分裂(disruption)を最少に抑えるためにある。
【００４９】
[0065]  コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、オーディオ処理を非同期にゲーミング・アプリケーションにスケジューリングする。マルチメディア・コンソール・アプリケーション・マネージャー（以下で説明する）は、システム・アプリケーションがアクティブであるとき、ゲーミング・アプリケーションのオーディオ・レベル（例えば、無音化、減衰）を制御する。
【００５０】
[0066]  入力デバイス（例えば、コントローラー１４２（１）および１４２（２））は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されたリソースではないが、各々がそのデバイスのフォーカス(a focus of the device)を有するように、システム・アプリケーションとマルチメディア・アプリケーションとの間で切り換えられる。アプリケーション・マネージャーは、好ましくは、ゲーミング・アプリケーションの知識を用いずに入力ストリームの切換を制御し、ドライバーはフォーカス・スイッチ(focus switches)に関する状態情報を維持する。コンソール１００は、センサー２４および２９を含む、図２の深度カメラ・システム２０から追加の入力を受け取ることもできる。
【００５１】
[0067]  図４は、図１のモーション・キャプチャー・システムにおいて用いることができる計算環境の他のブロック図例を示す。モーション・キャプチャー・システムでは、この計算環境は、１つ以上のジェスチャーまたは他の動きを解釈し、応答してディスプレイ上の視覚空間を更新するために用いることができる。計算環境２２０は、コンピューター２４１を備えており、コンピューター２４１は、通例、種々のコンピューター読み取り可能媒体を備えている。コンピューター読み取り可能媒体は、コンピューター２４１がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー２２２は、リード・オンリー・メモリー（ＲＯＭ）２２３およびランダム・アクセス・メモリー（ＲＡＭ）２６０のような揮発性および／または不揮発性メモリーの形態となっている、コンピューター記憶媒体を含む。基本入出力システム２２４（ＢＩＯＳ）は、起動中のように、コンピューター２４１内のエレメント間におけるデーター転送を補助する基本的なルーチンを内蔵しており、通例ＲＯＭ２２３内に格納されている。ＲＡＭ２６０は、通例、演算装置２５９が直ちにアクセス可能であるデーターおよび／またはプログラム・モジュール、または現在これによって処理されているデーターおよび／またはプログラム・モジュールを収容する。グラフィクス・インターフェース２３１は、ＧＰＵ２２９と通信する。一例として、そして限定ではなく、図４は、オペレーティング・システム２２５、アプリケーション・プログラム２２６、その他のプログラム・モジュール２２７、およびプログラム・データー２２８を示す。
【００５２】
[0068]  また、コンピューター２４１は、その他のリムーバブル／非リムーバブル揮発性／不揮発性コンピューター記憶媒体も含むことができる。例えば、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ２３８、リムーバブル不揮発性磁気ディスク２５４からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ２３９、ならびにＣＤ  ＲＯＭまたはその他の光媒体のようなリムーバブル不揮発性光ディスク２５３からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ２４０が含まれる。本動作環境例において使用可能なその他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピューター記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭ等が含まれる。ハード・ディスク・ドライブ２３８は、通例、インターフェース２３４のような非リムーバブル・メモリー・インターフェースを通じてシステム・バス２２１に接続され、磁気ディスク・ドライブ２３９および光ディスク・ドライブ２４０は、通例、インターフェース２３５のようなリムーバブル・メモリー・インターフェースによって、システム・バス２２１に接続されている。
【００５３】
[0069]  先に論じ図４に示すドライブおよびそれらに付随するコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター２４１のその他のデーターを格納する。例えば、ハード・ディスク・ドライブ２３８は、オペレーティング・システム２５８、アプリケーション・プログラム２５７、他のプログラム・モジュール２５６、およびプログラム・データー２５５を格納するように示されている。尚、これらのコンポーネントは、オペレーティング・システム２２５、アプリケーション・プログラム２２６、他のプログラム・モジュール２２７、およびプログラム・データー２２８と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム２５８、アプリケーション・プログラム２５７、他のプログラム・モジュール２５６、およびプログラム・データー２５５は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザーは、キーボード２５１、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス２５２のような入力デバイスによって、コマンドおよび情報をコンピューター２４１に入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース２３６を介して、演算装置２５９に接続されている。ユーザー入力インターフェース２３６は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）というような他のインターフェースおよびバス構造によって接続することも可能である。センサー２４および２９を含む図２の深度カメラ・システム２０は、コンソール１００に追加入力デバイスを定めることができる。モニター２４２またはその他のタイプの表示装置も、ビデオ・インターフェース２３２のようなインターフェースを介して、システム・バス２２１に接続されている。モニターに加えて、コンピューターが、スピーカー２４４およびプリンター２４３のような、その他の周辺出力装置も含んでもよく、これらは出力周辺インターフェース２３３を通じて接続すればよい。
【００５４】
[0070]  コンピューター２４１は、リモート・コンピューター２４６のような１つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター２４６は、パーソナル・コンピューター、サーバー、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター２４１に関して先に説明したエレメントの多くまたは全てを含むが、図４にはメモリー記憶装置２４７のみを示す。前述の論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）２４５およびワイド・エリア・ネットワーク（ＷＡＮ）２４９を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては一般的である。
【００５５】
[0071]  ＬＡＮネットワーク環境で用いる場合、コンピューター２４１は、ネットワーク・インターフェースまたはアダプター２３７を介してＬＡＮ２４５に接続する。ＷＡＮネットワーク環境で用いる場合、コンピューター２４１は、通例、モデム２５０、またはインターネットのようなＷＡＮ２４９を通じて通信を設定するその他の手段を含む。モデム２５０は、内蔵でも外付けでもよく、ユーザー入力インターフェース２３６またはその他の適切な機構を介してシステム・バス２２１に接続することができる。ネットワーク環境では、コンピューター２４１に関係付けて図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図４は、リモート・アプリケーション・プログラム２４８がメモリー・デバイス２４７に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを設定する他の手段も使用可能であることは認められよう。
【００５６】
[0072]  以上の計算環境は、本明細書において記載する深度カメラ・システムにおいて画像データーを処理する方法を実行するように、少なくとも１つのプロセッサーをプログラミングするためのコンピューター読み取り可能ソフトウェアが具体化されている有形コンピューター読み取り可能ストレージを含むことができる。この有形コンピューター読み取り可能ストレージは、例えば、コンポーネント３１、１９４、２２２、２３４、２３５、２３０、２５３、および２５４の内１つ以上を含むことができる。プロセッサーは、例えば、コンポーネント３２、１９２、２２９、および２５９の内１つ以上を含むことができる。
【００５７】
[0073]  図５Ａは、構造化光システムにおける照明フレームおよび取り込みフレーム(captured frame)を示す。照明フレーム５００は、照明装置の視野内にある物体５２０上に構造化光を放出する照明装置の画像平面を表す。照明フレーム５００は、ｘ２、ｙ２、およびｚ２という直交軸を有する軸系を含む。Ｆ２は、照明装置の焦点であり、Ｏ２は、照明フレーム５００の中心というような、この軸系の原点である。放出された構造化光は、縞模様、斑点(spots)、またはその他の既知の照明パターンを含むことができる。同様に、取り込みフレーム５１０は、図２と関係付けて論じたセンサー２４または２９のような、センサーの画像平面を表す。取り込みフレーム５１０は、ｘ１、ｙ１、およびｚ１という直交軸を有する軸系を含む。Ｆ１はセンサーの焦点であり、Ｏ１は、取り込みフレーム５１０の中心というような、この軸系の焦点である。この例では、簡略化のために、ｙ１およびｙ２は、共線的に(collinearly)整列されており、ｚ１およびｚ２は平行になっているが、こうしなければいけないのではない。また、２つ以上のセンサーを用いることができるが、簡略化のために、ここでは１つのセンサーだけを図示している。
【００５８】
[0074]  投射された構造化光の光線は、照明フレーム５００上にある点Ｐ２から放出される光線例５０２のように、照明装置平面における異なるｘ２、ｙ２位置から放出される。光線５０２は、点Ｐ０において物体５２０、例えば、人に衝突し、多くの方向に反射される。光線５１２は、反射光の一例であり、点Ｐ０から取り込みフレーム５１０上の点Ｐ１まで進む。Ｐ１は、センサー内の１画素によって表されるので、そのｘ１、ｙ１位置は既知である。幾何学的原理により、Ｐ２は、Ｐ１、Ｆ１、およびＦ２を含む平面上に位置する。この平面の内、照明フレーム５００と交差する部分が、エピポーラ線(epi-polar line)５０５となる。構造化光の内どの部分がＰ２によって投射されるかを特定することによって、エピポーラ線５０５に沿ったＰ２の位置を特定することができる。Ｐ２は、Ｐ１の対応点である。物体の深度が近い(closer)程、エピポーラ線の長さは長くなる。
【００５９】
[0075]  続いて、三角測量法によって、ｚ１軸に沿ったＰ０の深度を判定することができる。これは、深度マップにおいて画素Ｐ１に割り当てられる深度値である。照明フレーム５００内にある点の中には、遮蔽のため、またはセンサーの視野が限られることのため等で、取り込みフレーム５１０に対応する画素がないこともある。取り込みフレーム５１０における画素で照明フレーム５００の中で対応点が特定された各々について、深度値を得ることができる。取り込みフレーム５１０に対する１組の深度値から、取り込みフレーム５１０の深度マップが得られる。追加のセンサーおよびそれらそれぞれの取り込みフレームについて、同様のプロセスを実行することができる。更に、ビデオ・データーの連続フレームを得たとき、本プロセスをフレーム毎に実行することができる。
【００６０】
[0076]  図５Ｂは、立体光システムにおける２つの取り込みフレームを示す。立体処理は、２つのフレームにおける対応点を特定することが、図５Ａにおいて説明した処理に類似する。しかしながら、この場合、２つの取り込みフレームにおける対応画素を特定し、照明を別個に供給する。照明装置５５０は、この照明装置の視野内にある物体５２０上に投射光を供給する。この光は、この物体によって反射され、例えば、２つのセンサーによって検知される。第１センサーは、画素データーのフレーム５３０を取り込み、一方第２センサーは、画素データーのフレーム５４０を取り込む。光線例５３２は、物体上の点Ｐ０からフレーム５３０における画素Ｐ２まで延び、関連するセンサーの焦点Ｆ２を通過する。同様に、光線例５４２は、物体上の点Ｐ０からフレーム５４０における画素Ｐ１まで延び、関連するセンサーの焦点Ｆ１を通過する。フレーム５４０の視点からは、ステレオ照合は、エピポーラ線５４５上でＰ１に対応する点Ｐ２を特定することを伴うことができる。同様に、フレーム５３０の視点からは、ステレオ照合は、エピポーラ線５４８上でＰ２に対応する点Ｐ１を特定することを伴うことができる。このように、ステレオ照合は、１対のフレームのフレーム毎に１回ずつ、別個に実行することができる。場合によっては、第１フレームから第２フレームへの１方向のステレオ照合を実行し、第２フレームから第１フレームへの他の方向には、ステレオ照合を実行しないことも可能である。
【００６１】
[0077]  ｚ１軸に沿ったＰ０の深度は、三角測量法で判定することができる。これは、深度マップにおける画素Ｐ１に割り当てられる深度値である。フレーム５４０内の点には、遮蔽のため、またはセンサーの視野が限られているため等で、フレーム５３０に対応する画素がない場合もある。フレーム５４０内にあって、フレーム５３０において対応する画素が特定された各画素について、深度値を得ることができる。フレーム５４０に対する１組の深度値が、フレーム５４０の深度マップを規定する。
【００６２】
[0078]  同様に、ｚ２軸に沿ったＰ２の深度も三角測量法で判定することができる。これは、深度マップにおける画素Ｐ２に割り当てられる深度値である。フレーム５３０内の点には、遮蔽のため、またはセンサーの視野が限られているため等で、フレーム５４０に対応する画素がない場合もある。フレーム５３０内にあって、フレーム５４０において対応する画素が特定された各画素について、深度値を得ることができる。フレーム５３０に対する１組の深度値が、フレーム５３０の深度マップを規定する。
【００６３】
[0079]  同様のプロセスは、追加のセンサーおよびそれらそれぞれの取り込みフレームについて実行することができる。更に、ビデオ・データーの連続フレームが得られたとき、本プロセスはフレーム毎に実行することができる。
【００６４】
[0080]  図６Ａは、照明装置の同じ側に２つのセンサーを有する撮像コンポーネント６００を示す。照明装置２６は、視野の中にある人間ターゲットまたはその他の物体を、構造化光パターンで照明する投射機である。光源は、例えば、０．７５μｍ〜１．４μｍの波長を有する近赤外線、３μｍ〜８μｍの波長を有する中間波長赤外線光、および８μｍ〜１５μｍの波長を有する長波長赤外線光を含む７００ｎｍ〜３，０００ｎｍの波長を有する赤外線レーザとすることができる。これは、人間によって放出される赤外線に最も近い熱撮像領域である。この照明装置は、レーザ光を受光し多数の回折光ビームを出力する回折光学素子（ＤＯＥ）を含むことができる。一般に、ＤＯＥは、１つの平行光ビームから、数千ものそれよりも小さな光ビームというような、多数の光ビームを小さくして供給するために用いられる。小さくした光ビームは各々、１つの平行光ビームのパワーの小さな端数を有し、小さくなった回折光ビームは、名目上等しい強度を有するのであればよい。
【００６５】
[0081]  小さい方の光ビームは、所望の所定パターンで照明装置の視野を定める。ＤＯＥは、ビーム反復子であり、したがって全ての出力ビームは、入力ビームと同じ幾何学的形状を有する。例えば、動き追跡(motion tracking)システムでは、部屋の中で起立または着席している人間ターゲットの追跡を可能にするように、この部屋を照明することが望ましいことがある。この人間ターゲット全体を追跡する際、人間の身長および体幅全体、ならびに動き追跡システムのアプリケーションと対話処理するときにこの人間が動き回る可能性があるエリアを照明するためには、視野は十分に広い角度、高さおよび幅に広がらなければならない。腕を頭の上に伸ばしたり、または外側に向かって両側に伸ばしたりしたときの腕の範囲を含む、予想される人間の身長および体幅、人間がアプリケーションと対話処理するときに動く可能性があるエリア、カメラから人間までの予想される距離、およびカメラの焦点距離というような要因に基づいて、しかるべき視野を設定することができる。
【００６６】
[0082]  既に論じたＲＧＢカメラ２８も設けるとよい。ＲＧＢカメラは、図６Ｂおよび図６Ｃにおいても設けることができるが、簡略化のために図示されていない。
[0083]  この例では、センサー２４および２９は、照明装置２６の同じ側にある。センサー２４は、照明装置２６から基準線距離ＢＬ１のところにあり、センサー２９は、照明装置２６から基準線距離ＢＬ２のところにある。センサー２９は、これの方が基準線が短いことのために、短距離撮像に最適化されており、一方センサー２４は、これの方が基準線が長いことのために、長距離撮像に最適化されている。更に、照明装置の一方側に双方のセンサーを配置することによって、通例サイズが限られる筐体を含む撮像コンポーネント６００の固定サイズに合わせて、照明装置から離れている方のセンサーに、より長い基準線を得ることができる。一方、基準線を短くする程、短距離の撮像が改善する。何故なら、所与の焦点距離を想定して、センサーは、近くにある物体に合焦することができ、これによって、距離が短い程正確な深度測定が可能になるからである。基準線を短くすることにより、不一致(disparity)が少なくなり、遮蔽が最小限に止まる。
【００６７】
[0084]  基準線が長い程、長距離の撮像が改善する。何故なら、対応する点の光線間にできる角度が大きくなるからであり、これが意味するのは、画像画素が検出することができる距離の差を縮減できるということである。例えば、図５Ａにおいて、フレーム５００および５１０が離れる程、光線５０２および５１２間の角度が大きくなることがわかる。そして、図５Ｂでは、フレーム５３０および５４０が離れる程、光線５３２および５４２間の角度が大きくなることがわかる。深度を判定する三角測量のプロセスは、光線間の角度が大きくなるようにセンサー同士が遠く離れる程、精度が高くなる。
【００６８】
[0085]  短距離または長距離撮像のどちらを最適化するかにしたがってセンサーに最適な基準線を設定することに加えて、撮像コンポーネント６００の筐体の拘束範囲内で、短距離または長距離撮像を最適化するために、センサーの他の特性を設定することができる。例えば、カメラの空間解像度を最適化することができる。電荷結合素子（ＣＣＤ）のようなセンサーの空間解像度は、画素数、および投射される画像に対するそれらのサイズの関数であり、センサーによってどの位細かく詳細を検出できるかということの尺度となる。短距離撮像に最適化されたセンサーでは、長距離撮像に最適化されているセンサーと比較して、低い空間解像度でも容認可能とすることができる。低い空間解像度は、フレームにおいて比較的少ない数の画素を用いることによって、および／または比較的大きな画素を用いることによって得ることができる。何故なら、視野において検出される物体の深度が小さいため、投射画像に対する画素サイズが相対的に大きくなるからである。これは、コスト節約およびエネルギ消費低減という結果を得ることができる。一方、長距離撮像に最適化されたセンサーでは、短距離撮像に最適化されたセンサーと比較して、高い空間解像度を用いなければならない。高い空間解像度は、フレームにおいて比較的多い数の画素を用いることによって、および／または比較的小さな画素を用いることによって得ることができる。何故なら、視野において検出される物体の深度が大きいため、投射画像に対する画素サイズが相対的に小さくなるからである。解像度が高い程、深度測定において高い精度が得られる。
【００６９】
[0086]  短距離撮像または長距離撮像を最適化するために設定することができるセンサーの他の特性に、感度がある。感度とは、センサーが入射光に対して反応する範囲を言う。感度の尺度の１つに、量子効率がある。これは、電子−正孔対を生成する、画素のような、センサーの光反応面に入射する光子の割合である。短距離撮像に最適化されたセンサーでは、低い感度でも容認可能である。何故なら、光子をセンサーに向けて反射する物体までの距離が短いために、比較的多くの光子が各画素に入射するからである。低い感度は、例えば、低品質のセンサーによってでも得ることができ、コスト節約になる。一方、長距離撮像に最適化されたセンサーでは、短距離撮像に最適化されたセンサーと比較して、高い感度を用いなければならない。高い感度は、高い品質のセンサーを用いることによって得ることができ、光子をセンサーに向けて反射する物体までの距離が長いことのために、各画素に入射する光子が比較的少ない場合でも検出が可能となる。
【００７０】
[0087]  短距離または長距離撮像を最適化するために設定することができるセンサーの他の特性に、露出時間がある。露出時間は、画像データーのフレームを得るプロセスの間、例えば、カメラのシャッターが開いている時間に、センサーの画素に光りを到達させる時間量である。露出時間の間、センサーの画素は電荷を蓄積または集積する。露出時間は、感度に関係があり、露出時間を長くすると、低い感度を補うことができる。しかしながら、短距離で精度高く連続する動き(motion sequence)を取り込むためには、露出時間は短い程望ましい。何故なら、撮像された物体の所与の動きは、物体が近い程、大きな画素オフセット(pixel offset)に解釈されるからである。短距離撮像に最適化されたセンサーには、短い露出時間を用いることができ、一方長距離撮像に最適化されたセンサーには、長い露出時間を用いることができる。しかるべき露出時間を用いることにより、近い物体の過剰露出／画像飽和や、遠い物体の露出不足を回避することができる。
【００７１】
[0088]  図６Ｂは、照明装置の一方側に２つのセンサーを有し、この照明装置の反対側に１つのセンサーを有する撮像コンポーネント６１０を示す。このように第３のセンサーを追加することによって、物体の撮像における遮蔽が少なくなり、追加の深度測定値が得られることにより、撮像の精度を高めることができる。センサー６１２のような１つのセンサーを照明装置の近くに位置付けることができ、他の２つのセンサーは照明装置の逆側にある。この例では、センサー２４が照明装置２６から基準距離ＢＬ１のところにあり、センサー２９が照明装置２６から基準線距離ＢＬ２のところにあり、第３センサー６１２が照明装置２６から基準線距離ＢＬ３のところにある。
【００７２】
[0089]  図６Ｃは、照明装置の同じ側に３つのセンサーを有する撮像コンポーネント６２０を示す。このように第３のセンサーを追加することによって、追加の深度測定値が得られるために、一層精度の高い撮像を行うことが可能になる。更に、各センサーを異なる深度範囲に合わせて最適化することができる。例えば、照明装置からの基準線距離ＢＬ３が長いセンサー２４は、長距離撮像に最適化することができる。照明装置から中間の基準線距離ＢＬ２にあるセンサー２９は、中距離撮像に最適化することができる。そして、照明装置からの基準線距離ＢＬ１が短いセンサー６１２は、短距離撮像に最適化することができる。同様に、空間解像度、感度、および／または露出時間も、センサー２４では長距離レベルに、センサー２９では中距離レベルに、そしてセンサー６１２では短距離レベルに最適化することができる。
【００７３】
[0090]  図６Ｄは、照明装置の相対する両側に２つのセンサーを有する撮像コンポーネント６３０を示し、物体の異なる部分を２つのセンサーがどのようにして検知するのかを示す。センサーＳ１  ２４は、照明装置２６から基準線距離ＢＬ１のところにあり、短距離撮像に最適化されている。センサーＳ２  ２９は、照明装置２６から基準線距離ＢＬ２＞ＢＬ１のところにあり、長距離撮像に最適化されている。ＲＧＢカメラ２８も示されている。物体６６０が視野内にある。尚、この図の視点は、分かり易く修正されており、撮像コンポーネント６３０は正面図から示されており、物体６６０は上面図から示されていることを注記しておく。光線６４０および６４２は、照明装置２６によって投射される光線の例である。光線６３２、６３４、および６３６は、センサーＳ１  ２４によって検知された反射光の光線例であり、光線６５０および６５２は、センサーＳ２  ２９によって検知された反射光の光線例である。
【００７４】
[0091]  この物体は、５つの表面を含み、センサーＳ１  ２４およびＳ２  ２９によって検知される。しかしながら、遮蔽のために、全ての表面が双方のセンサーによって検知されなくなっている。例えば、表面６６１は、センサーＳ１  ２４のみによって検知され、センサーＳ２  ２９の視点からは遮られている。また、表面６６２は、センサーＳ１  ２４のみによって検知され、センサーＳ２  ２９の視点からは遮られている。表面６６３は、センサーＳ１およびＳ２双方によって検知される。表面６６４は、センサーＳ２のみによって検知され、センサーＳ１の視点からは遮られている。表面６６５は、センサーＳ２のみによって検知され、センサーＳ１の視点からは遮られている。表面６６６は、センサーＳ１およびＳ２双方によって検知される。これは、第２センサー、または他の付加的なセンサーの追加を用いると、こうしなければ遮られる物体の部分をどのように撮像することができるかを示す。更に、これらのセンサーを照明装置から実用上できるだけ遠くに配置することも、遮蔽を最小限に抑えるためには、望ましいことが多い。
【００７５】
[0092]  図７Ａは、視野の深度マップを求めるプロセスを示す。ステップ７００は、構造化光のパターンで視野を照明することを含む。いずれのタイプの構造化光でも用いることができ、コード化した構造化光が含まれる。ステップ７０２および７０４は、少なくとも部分的に同時に実行することができる。ステップ７０２は、第１センサーにおいて反射赤外線光を検出し、画素データーの第１フレームを得ることを含む。この画素データーは、例えば、視野から画素に入射した光量の指示として、露出時間の間に各画素によって蓄積された電荷量を示すことができる。同様に、ステップ７０４は、第２センサーにおいて反射赤外線光を検出し、画素データーの第２フレームを得ることを含む。ステップ７０６は、双方のフレームからの画素データーを処理して、合体深度マップを導き出すことを含む。これは、図７Ｂ〜図７Ｅに関係付けて更に論ずるような、異なる技法を伴うことができる。ステップ７０８は、合体深度マップに基づいてアプリケーションに制御入力を供給することを含む。この制御入力は、ディスプレイ上におけるアバターの位置を更新する、ユーザー・インターフェース（ＵＩ）においてメニュー項目を選択する、または他にも可能な多くの動作のためというように、種々の目的に用いることができる。
【００７６】
[0093]  図７Ｂは、２つの構造化光深度マップを合体する、図７Ａのステップ７０６の更なる詳細を示す。この手法では、第１および第２構造化光深度マップを、それぞれ、第１および第２フレームから求めて、２つの深度マップを合体する。このプロセスは、あらゆる数の２つ以上の深度マップを合体するように拡張することができる。具体的には、ステップ７２０において、画素データーの第１フレーム（図７Ａのステップ７０２において得られた）における画素毎に、構造化光のパターンを照合することによって、照明フレームにおける対応点を判定する試みを行う。場合によっては、遮蔽またはその他の要因のために、第１フレームにおける１つ以上の画素に、照明フレームにおいて対応点を首尾良く判定できない場合もある。ステップ７２２において、第１構造化光深度マップを供給する。この深度マップは、第１フレームにおける各画素、および対応する深度値を特定することができる。同様に、ステップ７２４において、画素データーの第２フレーム（図７Ａのステップ７０４において得られた）における画素毎に、照明フレームにおける対応点を判定する試みを行う。場合によっては、遮蔽またはその他の要因のために、第２フレームにおける１つ以上の画素に、照明フレームにおいて対応点を首尾良く判定できない場合もある。ステップ７２６において、第２構造化光深度マップを供給する。この深度マップは、第２フレームにおける各画素、および対応する深度値を特定することができる。ステップ７２０および７２２は、少なくとも部分的にステップ７２４および７２６と同時に実行することができる。ステップ７２８において、構造化光深度地図を合体して、図７Ａのステップ７０６の合体深度マップ(depth app)を導き出す。
【００７７】
[0094]  この合体は、非加重平均、加重平均、精度尺度、および／または信頼性尺度を伴う手法を含む、異なる複数の手法に基づくことができる。１つの手法では、画素毎に、２つ以上の深度マップ間において深度値の平均を取る。第１フレームにおけるｉ番目の画素に対する深度値ｄ１と、第２フレームにおけるｉ番目の画素に対する深度値ｄ２との非加重平均の例は、（ｄ１＋ｄ２）／２となる。第１フレームにおけるｉ番目の画素に対する重みｗ１の深度値ｄ１と、第２フレームにおけるｉ番目の画素に対する重みｗ２の深度値ｄ２との加重平均の例は、（ｗ１×ｄ１＋ｗ２×ｄ２）／［（ｗ１＋ｗ２）］となる。深度値を合体する１つの手法では、センサーと照明装置との間の基準線距離に基づいて、フレームの深度値に重みを割り当て、基準線距離が長い程、高い信頼性を示す大きな重みを割り当て、基準線距離が短い程、低い信頼性を示す、小さい重みを割り当てるようにする。これを行うのは、基準線距離が長い程、精度が高い深度値が求められるからである。例えば、図６Ｄにおいて、ｗ１＝ＢＬ１（ＢＬ１＋ＢＬ２）の重みを、センサーＳ１からの深度値に割り当てることができ、ｗ２＝ＢＬ２／（ＢＬ１＋ＢＬ２）の重みを、センサーＳ２からの深度値に割り当てることができる。例示するために、ＢＬ＝１距離単位、およびＢＬ＝２距離単位、ｗ１＝１／３およびｗ２＝２／３と仮定する。これらの重みは、画素毎に、または深度値毎に適用することができる。
【００７８】
[0095]  以上の例は、図６Ｄにおける距離ＢＬ１＋ＢＬ２に基づいて、センサーＳ１からの画像のセンサーＳ２からの画像に対する立体照合から得られる深度値によって補強することもできる。この場合、ｗ１＝ＢＬ１／（ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２）をセンサーＳ１からの深度値に割り当てることができ、ｗ２＝ＢＬ２／（ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２）の重みをセンサーＳ２からの深度値に割り当てることができ、ｗ３＝（ＢＬ１＋ＢＬ２）／（ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２）の重みを、Ｓ１からＳ２への立体照合から得られた深度値に割り当てることができる。例示するために、ＢＬ＝１距離単位およびＢＬ＝２距離単位、ｗ１＝１／６、ｗ２＝２／６、およびｗ３＝３／６と仮定する。更なる補強では、図６ＤにおけるセンサーＳ１からの画像に対するセンサーＳ２からの画像の立体照合から、深度値を求める。この場合、ｗ１＝ＢＬ１／（ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２）をセンサーＳ１からの深度値に割り当てることができ、ｗ２＝ＢＬ２／（ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２）の重みをセンサーＳ２からの深度値に割り当てることができ、ｗ３＝（ＢＬ１＋ＢＬ２）／（ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２）の重みを、Ｓ１からＳ２への立体照合から得られた深度値に割り当てることができ、ｗ４＝（ＢＬ１＋ＢＬ２）／（ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２＋ＢＬ１＋ＢＬ２）の重みを、Ｓ２からＳ１への立体照合から得られた深度値に割り当てることができる。例示するために、ＢＬ＝１距離単位およびＢＬ＝２距離単位、ｗ１＝１／９、ｗ２＝２／９、ｗ３＝３／９、およびｗ４＝４／９と仮定する。これは、単なる１つの可能性に過ぎない。
【００７９】
[0096]  また、信頼性尺度に基づいて重みを与え、信頼性尺度が高い深度値程、高い重みを割り当てるようにすることができる。１つの手法では、初期信頼性尺度を各画素に割り当て、物体の深度がフレーム毎に素早く変化しないという仮定に基づいて、新たなフレーム毎に、深度値が同じであるかまたは許容範囲内で同じに近い場合、信頼性尺度を増大させる。例えば、毎秒３０フレームのフレーム・レートでは、追跡されている人間はフレーム間でさほど動かない。これ以上の詳細については、１９９１年８月１３日に発行された"Visual navigation and obstacle avoidance structured light system"（視覚的ナビゲーションおよび障害物回避構造化光システム）と題する米国特許第５，０４，１１６号を参照のこと。別の手法では、信頼性尺度は、深度値におけるノイズの尺度となる。例えば、隣接する画素間の深度値には大きな変化は実際には発生しそうにないと仮定して、このような深度値の大きな変化は、ノイズ量が増える程、信頼性尺度の一層の低下につながることを示すことができる。これ以上の詳細については、２００４年６月１５日に発行された"System and method of using range image data with machine vision tool"（マシン・ビジョン・ツールで範囲画像データーを用いるシステムおよび方法）と題する米国特許第６，７５１，３３８号を参照のこと。また、信頼性尺度を割り当てる他の手法も可能である。
【００８０】
[0097]  １つの手法では、「マスター」カメラ座標系を定義し、他の深度画像を「マスター」カメラ座標系に変換し、サンプリングし直す。一旦一致する画像を有したなら、１つ以上のサンプルを考慮に入れることを選択することができ、この考慮において、それらの信頼性に重み付けすればよい。平均は１つの解決策になるが、必ずしも最良のものではない。何故なら、それは遮蔽の場合を解決できないからである。この場合、各カメラは、空間内の異なる位置を首尾よく観察できることもある。信頼性尺度に、深度マップにおける各深度値を関連付けることができる。他の手法は、画像画素が存在しない３Ｄ空間におけるデーターを合体することである。３−Ｄでは、容積法(volumetric method)を利用することができる。
【００８１】
[0098]  画素が正しくパターンに一致したか否か、したがって正しい深度値を有するか否か判定するために、通例、画像と既知の投射パターンとの間で相関付けまたは正規化相関付け(normalized correlation)を行う。これは、センサーと照明装置との間にあるエピポーラ線に沿って行われる。正常な一致は、相関の比較的強い局所最大値によって示され、高い信頼性尺度と関連付けることができる。一方、相関の比較的弱い局所最大値には、低い信頼性尺度を関連付けることができる。
【００８２】
[0099]  また、精度尺度に基づいて重みを与えることもでき、信頼性尺度が高い深度値程、高い重みを割り当てるようにする。例えば、空間解像度、ならびにセンサーと照明装置との間の基準線距離およびセンサー間の基準線距離に基づいて、各深度サンプルに精度尺度を割り当てることができる。精度尺度を判定する種々の技法が知られている。例えば、Point Grey Research, Richmond, BC, Canadaによる"Stereo Accuracy and Error Modeling"（立体精度および誤差モデリング）、２００４年４月１９日、http://www.ptgrey.com/support/kb/data/kbStereoAccuracyShort.pdfを参照のこと。次いで、これらの精度に基づいて、加重平均を計算することができる。例えば、測定した３Ｄ点について、重みWi=exp(-accuracy_i)を割り当てる。ここで、accuracy_iは精度尺度であり、平均３Ｄ点はPavg=sum(Wi*Pi)/Sum(Wi)となる。次いで、これらの重みを用いて、３−Ｄにおいて近接している点サンプルを、加重平均を用いて合体することができる。
【００８３】
[00100]  ３Ｄにおける深度値データーを合体するために、(X,Y,Z)=depth*ray+originを用いて、全ての深度画像を３Ｄ空間に投射することができる。ここで、rayは画素からセンサーの焦点距離までの３Ｄベクトルであり、originは３Ｄ空間におけるセンサーの焦点の位置である。３Ｄ空間では、深度データー点毎に、垂直方向(normal direction)を計算する。更に、データー点毎に、他のソースから近隣データー点を探す。他のデーター点が十分に近く、点の垂直ベクトル間のドット積が正である場合、これが意味するのは、これらが同様に向けられており、物体の両側にはないということであり、これらの点を１つの点に合体する。この合体は、例えば、これらの点の３Ｄ位置の加重平均を計算することによって行うことができる。重みは、測定値の信頼性によって定めることができ、信頼性尺度は相関採点に基づく。
【００８４】
[00101]  図７Ｄは、２つの構造化光深度マップおよび２つの立体深度マップを合体する、図７Ａのステップ７０６の更なる詳細を示す。この手法では、第１および第２構造化光深度マップを、それぞれ、第１および第２フレームから求める。加えて、１つ以上の立体深度マップも求める。第１および第２構造化光深度マップならびに１つ以上の立体深度マップを合体する。このプロセスは、２つ以上のあらゆる数の深度マップを合体するように拡張することができる。ステップ７４０および７４２は、少なくとも部分的に、ステップ７４４および７４６、ステップ７４８および７５０、ならびにステップ７５２および７５４と同時に実行することができる。ステップ７４０において、画素データーの第１フレームにおける各画素について、照明フレームにおいて対応する点を判定し、ステップ７４２において、第１構造化光深度マップを供給する。ステップ７４４において、画素データーの第１フレームにおける各画素について、画素データーの第２フレームにおいて対応する画素を判定し、ステップ７４６において、第１立体深度マップを供給する。ステップ７４８において、画素データーの第２フレームにおける各画素について、照明フレームにおいて対応する点を判定し、ステップ７５０において、第２構造化光深度マップを供給する。ステップ７５２において、画素データーの第２フレームにおける各画素について、画素データーの第１フレームにおいて対応する点を判定し、ステップ７５４において、第２立体深度マップを供給する。ステップ７５６は、異なる深度マップを合体することを含む。
【００８５】
[00102]  前述の合体は、異なる手法に基づくことができ、非加重平均、加重平均、精度尺度、および／または信頼性尺度を伴う手法を含む。
[00103]  この手法では、２つの立体深度マップを、２つの構造化光深度マップと合体する。１つの選択肢では、この合体では、１つの合体ステップにおいて全ての深度マップを一緒に考慮する。他の可能な手法では、この合体は多数のステップにおいて行われる。例えば、構造化光深度マップを合体して第１合体深度マップを求め、立体深度マップを合体して第２合体深度マップを求め、第１および第２合体深度マップを合体して、最終的な合体深度マップを求める。合体が多数のステップで行われる他の選択肢では、第１構造化光深度マップを第１立体深度マップと合体して第１合体深度マップを求め、第２構造化光深度マップを第２立体深度マップと合体して、第２合体深度マップを求め、第１および第２合体深度マップを合体して、最終的な合体深度マップを求める。他の手法も可能である。
【００８６】
[00104]  他の手法では、１つの立体深度マップのみを２つの構造化光深度マップと合体する。この合体は、１つ以上のステップで行うことができる。多重ステップ手法では、第１構造化光深度マップを立体深度マップと合体して第１合体深度マップを求め、第２構造化光深度マップを立体深度マップと合体して、最終的な合体深度マップを求める。または、２つの構造化光深度マップを合体して第１合体深度マップを求め、第１合体深度マップを立体深度マップと合体して、最終的な合体深度マップを求める。他の手法も可能である。
【００８７】
[00105]  図７Ｄは、立体照合を用いて、必要に応じて深度値を見直す、図７Ａのステップ７０６の更なる詳細を示す。見直しが望ましいことを示す条件を検出したことに応答して１つ以上の深度値を見直すために立体照合を用いるということから、この手法は適応的である。立体照合は、フレームにおける画素の部分集合のみについて実行することができる。１つの手法では、画素の深度値の精緻が望ましいのは、画素を構造化光パターンに一致させることができないために、深度値がヌルまたはデフォルト値になってしまう場合である。遮蔽、陰影妨害、照明条件、表面模様、またはその他の理由のために、画素を構造化光パターンに一致させることができない場合がある。この場合、立体照合は、深度値が以前に得られていないところに深度値を供給することができ、また場合によっては、センサーと照明装置との間における基準線空間と比較して、それよりも長い基準線だけセンサーが離間されていることによって、更に精度が高い深度値を供給することもできる。例えば、図２、図６Ｂ、および図６Ｄを参照のこと。
【００８８】
[00106]  他の手法では、画素の深度値の見直しが望ましいのは、深度値が閾値距離を超過し、物体上の対応点がセンサーから比較的遠いことを示すときである。この場合、立体照合は、センサー間の基準線がセンサーの各々と照明装置との間の基準線よりも長い場合、一層精度が高い深度値を供給することができる。
【００８９】
[00107]  見直しは、以前に何の深度値も供給されていなかったときには深度値を供給すること、または、例えば、異なる手法に基づいて、深度値を合体することを伴うことができる。異なる手法は、非加重平均、加重平均、精度尺度、および／または信頼性尺度を伴う。更に、見直しは、各センサーのフレームに対して別個に、深度値を合体する前に実行することができる。
【００９０】
[00108]  見直しが望ましいことを示す条件が検出された画素についてのみ立体照合を実行することによって、不要な処理を回避する。見直しが望ましいことを示す条件が検出されない画素には、立体照合を実行しない。しかしながら、フレームの１つ以上の画素に対して、見直しが望ましいことを示す条件が検出されたときに、フレーム全体に対して立体照合を実行することも可能である。１つの手法では、フレーム全体に対する立体照合は、フレームにおける最小数の画素部分について見直しが指示されたときに、開始する。
【００９１】
[00109]  ステップ７６０において、画素データーの第１フレームにおける各画素について、照明フレームにおいて対応する点を判定し、ステップ７６１において、対応する第１構造化光深度マップを供給する。判断ステップ７６２では、深度値の見直しが指示されているか否か判断する。画素データーの第１フレームにおける各画素について、規準を評価することができ、１つの手法では、その画素に付随する深度値の見直しが望ましいか否か示すことができる。１つの手法では、見直しが望ましいのは、付随する深度値が入手できないまたは信頼性がないときである。信頼性がないことは、例えば、精度尺度および／または信頼性尺度に基づくことができる。信頼性尺度が閾値信頼性尺度を超える場合、その深度値は信頼性があると見なすことができる。または、精度尺度が閾値精度尺度を超える場合、深度値は信頼性があると見なすことができる。他の手法では、深度値が信頼性があると見なされるためには、信頼性尺度および精度尺度の双方が、それぞれの閾値レベルを超えなければならない。
【００９２】
[00110]  他の手法では、見直しが望ましいのは、深度が閾値深度を超えるときのように、深度が比較的離れていることを、付随する深度値が示すときである。見直しが望まれる場合、ステップ７６３において、画素データーの第１フレームにおける１つ以上の画素の、画素データーの第２フレームにおける１つ以上の画素に対する立体照合を実行する。この結果、画素データーの第１フレームの１つ以上の追加の深度値が得られる。
【００９３】
[00111]  同様に、画素データーの第２フレームについて、ステップ７６４において、画素データーの第２フレームにおける各画素に対し、照明フレームにおいて対応する点を判定し、ステップ７６５において、対応する第２構造化光深度マップを供給する。判断ステップ７６６では、深度値の見直しが指示されているか否か判断する。見直しが望まれる場合、ステップ７６７において、画素データーの第２フレームにおける１つ以上の画素の、画素データーの第１フレームにおける１つ以上の画素に対する立体照合を実行する。この結果、画素データーの第２フレームの１つ以上の追加の深度値が得られる。
【００９４】
[00112]  ステップ７６８において、画素データーの第１および第２フレームの深度マップを合体する。ここで、合体は、ステップ７６３および／または７６７の立体照合から求められた深度値を含む。この合体は、異なる手法に基づくことができ、非加重平均、加重平均、精度尺度、および／または信頼性尺度を伴う手法を含む。
【００９５】
[00113]  尚、見直しが指示された所与の画素について、前述の合体では、第１構造化光深度マップからの深度値と、第２構造化光深度マップからの深度値と、立体照合からの１つ以上の深度値とを合体することができる。この手法は、構造化光深度マップからの深度値を破棄し、立体照合からの深度値とそれを置き換える手法と比較して、一層信頼性の高い結果を供給することができる。
【００９６】
[00114]  図７Ｅは、立体照合を用いて、必要に応じて合体深度マップの深度値を見直す、図７Ａのステップ７０６に対する他の手法の更なる詳細を示す。この手法では、構造化光パターンに対する照合によって求められた深度マップの合体は、見直しプロセスの前に行われる。ステップ７６０、７６１、７６４、および７６５は、図７Ｄにおいて同様に付番されているステップと同じである。ステップ７７０では、構造化光深度マップを合体する。この合体は、異なる手法に基づくことができ、非加重平均、加重平均、精度尺度、および／または信頼性尺度を伴う手法を含む。ステップ７７１は図７Ｄのステップ７６２および７６６に類似しており、深度値の見直しが指示されているか否か判断することを伴う。
【００９７】
[00115]  合体深度マップにおける各画素について、規準を評価することができ、１つの手法では、画素に付随する深度値の見直しが望ましいか否か示すことができる。１つの手法では、見直しが望まれるのは、付随する深度値が入手できないまたは信頼性がないときである。信頼性がないことは、例えば、精度尺度および／または信頼性尺度に基づくことができる。信頼性尺度が閾値信頼性尺度を超える場合、その深度値は信頼性があると見なすことができる。または、精度尺度が閾値精度尺度を超える場合、深度値は信頼性があると見なすことができる。他の手法では、深度値が信頼性があると見なされるためには、信頼性尺度および精度尺度の双方が、それぞれの閾値レベルを超えなければならない。他の手法では、見直しが望ましいのは、深度が閾値深度を超えるときのように、深度が比較的離れていることを、付随する深度値が示すときである。見直しが望まれる場合、ステップ７７２および／またはステップ７７３を実行することができる。場合によっては、１つのフレームにおける画素を他のフレームにおける画素と照合することによって、１つの方向に立体照合を実行すれば十分なこともある。他の場合では、立体照合を両方向で実行することもできる。ステップ７７２では、画素データーの第１フレームにおける１つ以上の画素の、画素データーの第２フレームにおける１つ以上の画素に対する立体照合を実行する。この結果、画素データーの第１フレームの１つ以上の追加の深度値が得られる。ステップ７７３では、画素データーの第２フレームにおける１つ以上の画素の、画素データーの第１フレームにおける１つ以上の画素に対する立体照合を実行する。この結果、画素データーの第２フレームの１つ以上の追加の深度値が得られる。
【００９８】
[00116]  ステップ７７４において、立体照合を実行した１つ以上の選択した画素について、ステップ７７０の合体深度マップを見直す。この見直しは、異なる手法に基づいて深度値を合体することを伴うことができ、非加重平均、加重平均、精度尺度、および／または信頼性尺度を伴う手法を含む。
【００９９】
[00117]  判断ステップ７７１において見直しが望まれない場合、本プロセスはステップ７７５において終了する。
[00118]  図８は、図７Ａのステップ７０８において明記したような制御入力を用いて人間ターゲットを追跡する方法例を示す。前述のように、深度カメラ・システムを用いて、ジェスチャーのような、ユーザーの動きを追跡することができる。この動きは、アプリケーションにおける制御入力として処理することができる。例えば、これは、ディスプレイ上にあるアバターの位置を更新することを含むことができ、図１に示すように、アバターがユーザーを表す。更に、ユーザー・インターフェース（ＵＩ）においてメニュー項目を選択すること、または他の多くの可能な動作を含むことができる。
【０１００】
[00119]  この方法例は、例えば、深度カメラ・システム２０および／または図２〜図４と関係付けて論じたような、計算環境１２、１００、または４２０を用いて実施することができる。１つ以上の人間ターゲットを走査して、スケルトン・モデル、メッシュ人間モデル、または他のいずれかの適した人間の表現というような、モデルを生成することができる。スケルトン・モデルでは、各身体部分を、スケルトン・モデルの関節および骨を定義する数学的ベクトルとして特徴付けることができる。身体部分は、関節において互いに対して動くことができる。
【０１０１】
[00120]  次に、このモデルを用いて、計算環境が実行するアプリケーションと対話処理することができる。モデルを生成するための走査を行うのは、アプリケーションを開始または起動するとき、あるいは走査される人のアプリケーションによって制御される他の時点とすることができる。
【０１０２】
[00121]  人を走査してスケルトン・モデルを生成することができ、ユーザーの身体的動き(movement)または運動(motion)が、アプリケーションのパラメータを調節および／または制御するリアル・タイム・ユーザー・インターフェースとして動作することができるように、このスケルトン・モデルを追跡することができる。例えば、追跡した人の動きは、電子ロール・プレーイング・ゲームにおいてアバターまたはその他の画面上のキャラクターを動かすために用いることができ、電子競走ゲームにおいて画面上の車両を制御するために用いることができ、仮想環境における物体の構造(building)または組織を制御するために用いることができ、あるいはアプリケーションの他の適した制御であればそのいずれを実行するためにも用いることができる。
【０１０３】
[00122]  一実施形態によれば、ステップ８００において、例えば、深度カメラ・システムから深度情報を受け取る。深度カメラ・システムは、１つ以上のターゲットを含むかもしれない視野を取り込むことまたは観察することができる。この深度情報は、複数の被観察画素を有する深度画像またはマップを含むことができ、各被観察画素は、先に論じたような、観察された深度値を有する。
【０１０４】
[00123]  深度画像を低処理解像度にダウンサンプリングして、一層容易に用いることができ、少ない計算オーバーヘッドで処理できるようにしてもよい。加えて、１つ以上の高分散深度値および／またはノイズの多い深度値を深度画像から除去する、および／またはスムージングしてもよく、失った深度情報および／または除去した深度情報の部分を穴埋めすること、および／または再現することができ、および／またはスケルトン・モデル（図９参照）のようなモデルを生成するために深度情報を用いることができるように、適した処理であれば他のいずれでも、受け取った深度情報に対して実行することができる。
【０１０５】
[00124]  ステップ８０２では、深度画像が人間ターゲットを含むか否か判断する。これは、深度画像における各ターゲットまたは物体を塗り潰して(flood fill)、各ターゲットまたは物体をパターンと比較して、深度画像が人間のターゲットを含むか否か判断することができる。例えば、深度画像の選択されたエリアまたは点における画素の種々の深度値を比較して、前述のようにターゲットまたは物体を定めることができるエッジを判定することができる。判定したエッジに基づいて、Ｚ層において取り得るＺ値を塗り潰すことができる。例えば、判定されたエッジと関連のある画素、および判定されたエッジの内部にあるエリアの画素を互いに関連付けて、キャプチャー・エリアの中にあるターゲットまたは物体を定めることができ、これをパターンと比較することができる。これについては、以下で更に詳しく説明する。
【０１０６】
[00125]  判断ステップ８０４において、深度画像が人間ターゲットを含む場合、ステップ８０６を実行する。判断ステップ８０４が偽である場合、ステップ８００において追加の深度情報を受け取る。
【０１０７】
[00126]  各ターゲットまたは物体と比較するパターンは、人間の典型的な身体を集合的に定義する１組の変数を有する１つ以上のデーター構造を含むことができる。例えば、視野の中にいる人間ターゲットまたは人間以外のターゲットの画素に付随する情報を、これらの変数と比較して、人間ターゲットを識別することができる。一実施形態では、前述の１組における変数の各々に、身体部分に基づいて重み付けすることができる。例えば、パターンの中にある頭部および／または肩というような種々の身体部分には、重み値を関連付けることができ、この重み値は、脚部のような他の身体部分よりも大きくするとよい。一実施形態によれば、重み値は、ターゲットが人間であるか否か、そしてどのターゲットが人間なのか判断するために、ターゲットを変数と比較するときに用いることができる。例えば、変数と大きな重み値を有するターゲットとの間の照合は、小さい重み値との照合よりも、ターゲットが人間であることの高い可能性を得ることができる。
【０１０８】
[00127]  ステップ８０６は、人間ターゲットを走査して身体部分を発見することを含む。人間ターゲットを走査すると、人の１つ以上の身体部分に伴う長さ、幅等のような測定値を得ることができ、この人の高精度モデルを供給することができる。一実施形態例では、人間ターゲットを分離することができ、１つ以上の身体部分を走査するために人間ターゲットのビットマスクを作成することができる。ビットマスクは、例えば、人間ターゲットをキャプチャー・エリアのエレメントにおいて他のターゲットまたは物体から分離できるように、人間ターゲットを塗り潰すことによって製作することができる。次いで、このビットマスクを分析して１つ以上の身体部分を求め、人間ターゲットのスケルトン・モデル、メッシュ人間モデル等のようなモデルを発生することができる。例えば、一実施形態によれば、走査したビットマスクによって決定された測定値を用いて、スケルトン・モデルにおける１つ以上の関節を定義することができる。１つ以上の関節は、人間の身体部分に対応することができる１つ以上の骨を定義するために用いることができる。
【０１０９】
[00128]  例えば、人間ターゲットのビットマスクの最上位を頭の天辺の位置と関連付けることができる。頭部の天辺を決定した後、ビットマスクを下方に走査して、首の位置、肩の位置等を次に決定することができる。例えば、走査されている位置におけるビットマスクの幅を、例えば、首、肩等と関連のある典型的な幅の閾値と比較することができる。代替実施形態では、以前に走査した位置であってビットマスクにおける身体部分と関連のある位置からの距離を用いて、首、肩等の位置を決定することができる。脚部、足等のような身体部分の一部は、例えば、他の身体部分の位置に基づいて計算することもできる。身体部分の値を決定するとき、その身体部分の測定値を含むデーター構造を作成する。このデーター構造は、深度カメラ・システムによって異なる時点において供給される多数の深度画像から平均した走査結果を含むことができる。
【０１１０】
[00129]  ステップ８０８は、人間ターゲットのモデルを発生することを含む。一実施形態では、走査したビットマスクによって決定された測定値を用いて、スケルトン・モデルにおける１つ以上の関節を定義することができる。１つ以上の関節は、人間の身体部分に対応する１つ以上の骨を定義するために用いられる。
【０１１１】
[00130]  １つ以上の関節は、これらの関節が人間の関節と身体部分との間における典型的な距離の範囲内に収まるまで調節して、一層正確なスケルトン・モデルを発生することができる。更に、例えば、人間ターゲットと関連のある高さに基づいて、モデルを調節することもできる。
【０１１２】
[00131]  ステップ８１０において、毎秒数回人の位置を更新することによって、モデルを追跡する。ユーザーが物理空間において動くにつれて、スケルトン・モデルが人を表すように、スケルトン・モデルを調節するために深度カメラ・システムからの情報を用いる。即ち、１つ以上の力をスケルトン・モデルの１つ以上の力受入側面(force-receiving aspect)に加えて、物理空間内にある人間ターゲットの姿勢に一層密接に対応する姿勢に、スケルトン・モデルを調節することができる。
[0091]  一般に、人の動きを追跡するためには、知られている技法であればいずれでも用いることができる。
【０１１３】
[00133]  図９は、図８のステップ８０８において明記した人間ターゲットのモデル例を示す。モデル９００は、深度カメラに対して図１の−ｚ方向に面しているので、図示されている断面はｘ−ｙ平面内にある。このモデルは、頭部の天辺９０２、頭部の底部即ち顎９１３、右肩９０４、右肘９０６、右手首９０８、および、例えば、指先のエリアによって表される右手９１０というように、多数の基準点を含む。右側および左側は、カメラに面しているユーザーの視点から定義される。また、このモデルは、左肩９１４、左肘９１６、左手首９１８、および左手９２０も含む。また、手首領域９２２も、右臀部９２４、右膝９２６、右足９２８、左臀部９３０、左膝９３２、および左足９３４と共に描かれている。肩の線９１２は、両肩９０４および９１４間における、通例では水平な線である。例えば、点９２２および９１３の間を延びる上半身中央線９２５も描かれている。
【０１１４】
[00134]  以上のことから、多数の利点を有する深度カメラ・システムが提供されることがわかるであろう。１つの利点は、隠蔽が減ることである。より広い基準線を用いるので、他のセンサーには遮られている情報を、１つのセンサーが見ることができる。２つの深度マップの合体(fusing)によって、１つのセンサーによって生成したマップと比較して、観察可能な物体が多い３Ｄ画像を生成する。他の利点は、陰影妨害効果が減ることである。構造化光方法は、センサーには見えるが光源には「見えない」位置において、本来陰影妨害効果を生ずる。これらの領域に立体照合を適用することによって、この効果を減らすことができる。他の利点は、外光に対するロバスト性である。外部照明が構造化光カメラを混乱させるために、有効な結果を得ることができないという多くの状況(scenario)がある。これらの場合、立体データーは付加的な尺度として求められる。何故なら、外部照明は距離を測定するときに、実際にそれを補助することもあるからである。尚、外光は、同じ場面を見ている同一のカメラから来るかもしれないことを注記しておく。言い換えると、提案したカメラを２つ以上動作させて、同じ場面を見ることが可能になる。これは、１つのカメラによって生成される光パターンが、他のカメラが適正にパターンを一致させることを妨害することがあっても、立体整合はなおも成功する可能性が高いという事実による。他の利点は、提案した構成を用いると、２つのセンサーの方が広基準線を有するという事実のために、遠距離において精度向上を達成することが可能になる。構造化光および立体測定精度の双方は、センサー／投射機間の距離に大きく左右される。
【０１１５】
[00135]  以上、本明細書における技術の詳細な説明は、例示および記述のために限って提示したのである。これは、網羅的であることも、開示した形態そのものに本技術を限定することも意図していない。以上の教示を考慮すれば、多くの変更および変形が可能である。記載した実施形態は、本技術の原理およびその実用的用途を最良に説明することによって、当業者が本技術を種々の実施形態において利用すること、そして考えられる個々の使用に適するような種々の変更を行って利用することを可能にするように選択したのである。本技術の範囲は、添付する特許請求の範囲によって定義されることを意図している。
【図１】
0005865910.tif 000002
【図２】
0005865910.tif 000003
【図３】
0005865910.tif 000004
【図４】
0005865910.tif 000005
【図５Ａ】
0005865910.tif 000006
【図５Ｂ】
0005865910.tif 000007
【図６Ａ】
0005865910.tif 000008
【図６Ｂ】
0005865910.tif 000009
【図６Ｃ】
0005865910.tif 000010
【図６Ｄ】
0005865910.tif 000011
【図７Ａ】
0005865910.tif 000012
【図７Ｂ】
0005865910.tif 000013
【図７Ｃ】
0005865910.tif 000014
【図７Ｄ】
0005865910.tif 000015
【図７Ｅ】
0005865910.tif 000016
【図８】
0005865910.tif 000017
【図９】
0005865910.tif 000018