(57)【要約】  モニタに表示され得る様々な視点から、複合現実環境のビューを取り込むためのシステムおよび方法が、開示される。本システムは、複合現実環境の内部のユーザ定義された位置における１つまたは複数の物理的カメラ（５０ａ、５０ｂ）を含んでいる。本システムは、１つまたは複数のカメラ（５０ａ、５０ｂ）の視点から複合現実環境において仮想オブジェクト（４０）をレンダリングする。複合現実環境からの実オブジェクトと仮想オブジェクトとは、次いで、他の人たちにより見るための１つまたは複数の外部の２Ｄモニタに、１つまたは複数のカメラ（５０ａ、５０ｂ）の視点から表示されることもある。
2018511098.tif 000002
【特許請求の範囲】
【請求項１】
実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示するためのシステムであって、
仮想環境において３次元仮想オブジェクトを表示するためのディスプレイユニットを含むヘッドマウントディスプレイデバイスと、
１つまたは複数のカメラアセンブリと、
前記ディスプレイデバイスと前記１つまたは複数のカメラアセンブリとに動作可能に結合された処理ユニットと
を備えており、前記処理ユニットは、前記ヘッドマウントディスプレイと、前記３次元仮想オブジェクトと、前記１つまたは複数のカメラアセンブリとがレジストレーションされる３次元座標空間を含むシーンマップを生成し、前記処理ユニットと、前記１つまたは複数のカメラアセンブリのうちのカメラアセンブリとは、前記カメラアセンブリの視点からの表示のために前記複合現実環境の画像を生成する、システム。
【請求項２】
前記カメラアセンブリは、前記複合現実環境において実オブジェクトのカラー画像または白黒画像を取り込むための画像取り込みデバイスを含んでいる、請求項１に記載のシステム。
【請求項３】
前記カメラアセンブリは、前記複合現実環境の深さデータを取り込むためのイメージセンサを含んでおり、前記深さデータを使用して、前記イメージセンサの視点から前記複合現実環境の深さマップを生成する、請求項１に記載のシステム。
【請求項４】
前記カメラアセンブリと、前記ヘッドマウントディスプレイデバイスとは、前記カメラアセンブリによって共通座標系に対してキャリブレーションされ、前記ヘッドマウントディスプレイデバイスはキャリブレーションキューの１つまたは複数の画像を取り込む、請求項１に記載のシステム。
【請求項５】
前記処理ユニットは、前記カメラアセンブリおよび前記ヘッドマウントディスプレイデバイスの視点からキャリブレーションターゲットの前記１つまたは複数の画像からの深さイメージングセンサデータに基づいて、前記カメラアセンブリおよび前記ヘッドマウントディスプレイデバイスのポーズを決定する、請求項４に記載のシステム。
【請求項６】
前記カメラアセンブリは、前記シーンマップの前記３次元座標空間内に前記カメラアセンブリをレジストレーションする際に支援するための慣性測定ユニットを含む位置センサを含んでいる、請求項１に記載のシステム。
【請求項７】
前記カメラアセンブリは、第１のカメラアセンブリであり、前記１つまたは複数のカメラアセンブリは、第２のカメラアセンブリをさらに備えており、前記システムは、前記第１および第２のカメラアセンブリのうちのいずれかの視点から前記複合現実環境の表示を選択するための選択デバイスをさらに備えている、請求項１に記載のシステム。
【請求項８】
少なくとも第１の２次元モニタと第２の２次元モニタとをさらに備えており、前記第１のモニタは、前記第１のカメラアセンブリの視点から前記複合現実環境の前記画像を表示し、前記第２のモニタは、前記第２のカメラアセンブリの視点から前記複合現実環境の前記画像を表示する、請求項７に記載のシステム。
【請求項９】
実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示するためのシステムであって、
前記複合現実環境において現実世界オブジェクトの画像を異なる視点から取り込むための複数の画像取り込みデバイスと、
前記複数の画像取り込みデバイスに動作可能に結合された処理ユニットと
を備えており、前記処理ユニットは、互いに対して前記複数の画像取り込みデバイスのポーズを識別し、前記処理ユニットはさらに、前記複合現実環境において仮想オブジェクトを生成し、前記複数の画像取り込みデバイスに対して前記仮想オブジェクトの位置を識別し、前記処理ユニット、および前記複数の画像取り込みデバイスのうちの画像取り込みデバイスは、前記画像取り込みデバイスの視点から２次元モニタで表示するための前記複合現実環境の画像を生成する、システム。
【請求項１０】
前記画像取り込みデバイスは、ヘッドマウントディスプレイデバイス上にカメラを備えており、前記ヘッドマウントディスプレイデバイスは、前記ヘッドマウントディスプレイデバイスの光学系に前記仮想オブジェクトを表示するためのディスプレイユニットをさらに備えている、請求項９に記載のシステム。
【請求項１１】
前記画像取り込みデバイスは、カメラアセンブリを備えている、請求項９に記載のシステム。
【請求項１２】
前記処理ユニットは、ＲＧＢ画像および深さマップのうちの少なくとも一方を使用して、他の画像取り込みデバイスに対する前記カメラアセンブリの前記ポーズを識別する、請求項１１に記載のシステム。
【請求項１３】
前記カメラアセンブリは、他の画像取り込みデバイスに対する前記カメラアセンブリの前記ポーズを識別する際に支援するための慣性測定ユニットを含む位置センサを含んでいる、請求項１１に記載のシステム。
【請求項１４】
実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示する方法であって、
（a）ヘッドマウントディスプレイデバイスに組み込まれた第１のカメラを経由して、第１の視点から、前記複合現実環境の第１の画像を取り込むステップと、
（b）カメラアセンブリに組み込まれた第２のカメラを経由して、第２の視点から、前記複合現実環境の第２の画像を取り込むステップと、
（c）前記複合現実環境の中の位置において仮想オブジェクトを生成するステップと、
（d）前記ヘッドマウントディスプレイデバイスの光学系に前記仮想オブジェクトを表示するステップであって、前記仮想オブジェクトは、前記ヘッドマウントディスプレイデバイスの視点から表示されている、表示するステップと、
（e）前記カメラアセンブリから２次元ディスプレイデバイス上に前記第２の画像を前記仮想オブジェクトと一緒に表示するステップであって、前記仮想オブジェクトは、前記カメラアセンブリの視点から表示されている、表示するステップと
を含む方法。
【請求項１５】
前記２次元ディスプレイデバイスの表示を、前記仮想オブジェクトと一緒に前記第１の画像を前記ヘッドマウントディスプレイデバイスから表示することへと変更するステップをさらに含み、前記仮想オブジェクトは、前記ヘッドマウントディスプレイデバイスの視点から表示されている、請求項１４に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  複合現実は、仮想イメージを現実世界物理環境と混合することを可能にする技術である。実オブジェクトと、ユーザの視野の中に表示される仮想オブジェクトとの複合イメージを見るために、シースルー型のヘッドマウント複合現実ディスプレイデバイスがユーザによって着用され得る。しかしながら、ヘッドマウントディスプレイデバイスを有していない他の人たちは、複合現実環境を見ることができない。彼らは、実オブジェクトを見ることができるが、仮想オブジェクトを見ることはできない。
【発明の概要】
【課題を解決するための手段】
【０００２】
[0002]  本技術の実施形態は、一般にモニタに表示され得る様々な視点からの複合現実環境のビューを取り込むためのシステムおよび方法に関する。本システムは、複合現実環境の内部のユーザ定義された位置における１つまたは複数の物理的カメラを含んでいる。本システムは、１つまたは複数の物理的カメラと時間的に同期し、また１つまたは複数のカメラの視点から複合現実環境において仮想オブジェクトをレンダリングする。複合現実環境からの実オブジェクトと仮想オブジェクトとは、次いで、他の人たちによって見られるための１つまたは複数の外部の２Ｄモニタに１つまたは複数のカメラの視点から表示されてもよい。
【０００３】
[0003]  この概要は、以下の発明を実施するための形態においてさらに説明される概念の選択を、簡略化された形態で導入するために提供される。この概要は、特許請求の範囲の主題の重要な特徴または本質的な特徴を識別することを意図してはおらず、また特許請求の範囲の主題の範囲を決定する際の助けとして使用されることも意図してはいない。
【図面の簡単な説明】
【０００４】
【図１】[0004]実オブジェクトと、仮想オブジェクトとを含む仮想現実環境の説明図である。
【図２】[0005]図１のカメラアセンブリによって取り込まれる複合現実環境のモニタ上の表示を示す図である。
【図３】[0006]本技術の実施形態によるカメラアセンブリのブロック図である。
【図４】[0007]ヘッドマウントディスプレイユニットの一実施形態の斜視図である。
【図５】[0008]ヘッドマウントディスプレイユニットの一実施形態の一部分の側面図である。
【図６】[0009]ヘッドマウントディスプレイユニットのコンポーネントについての一実施形態のブロック図である。
【図７】[0010]ヘッドマウントディスプレイユニットに関連する処理ユニットのコンポーネントについての一実施形態のブロック図である。
【図８】[0011]ヘッドマウントディスプレイユニットに関連する処理ユニットのソフトウェアコンポーネントについての一実施形態のブロック図である。
【図９】[0012]本システムのヘッドマウントディスプレイユニットに関連する１つまたは複数の処理ユニットのオペレーションを示すフローチャートである。
【図１０】[0013]図９のフローチャートの中に示される様々なステップの例についてのより詳細なフローチャートである。
【図１１】図９のフローチャートの中に示される様々なステップの例についてのより詳細なフローチャートである。
【図１２】図９のフローチャートの中に示される様々なステップの例についてのより詳細なフローチャートである。
【図１３】[0014]本技術のカメラアセンブリによって取り込まれる複合現実環境のモニタ上の表示を示す図である。
【図１４】[0015]本技術の実施形態によるシステムのブロック図である。
【発明を実施するための形態】
【０００５】
[0016]  本技術の実施形態について次に図面を参照して説明される。これらの実施形態は、一般に、無制限の数の人々に対してモニタに表示可能である様々な視点からの複合現実環境のビューを取り込むためのシステムおよび方法に関する。本システムは、複合現実環境の内部のユーザ定義された位置に、１つまたは複数の物理的カメラを含んでいる。本システムは、１つまたは複数の物理的カメラと時間的に同期し、また１つまたは複数のカメラの視点から、複合現実環境をレンダリングする。シーンは、次いで、他の人たちが見るための１つまたは複数の外部の２Ｄモニタに表示されてもよい。
【０００６】
[0017]  図１は、現実世界オブジェクトと混合される仮想オブジェクトを含む複合現実環境１０を示す。実施形態においては、本技術は、仮想オブジェクトを生成するためのコンテンツ生成ソフトウェアアプリケーションと一緒に使用されることもある。示される例においては、ユーザ１８は、仮想コンテンツ４０を、この例においては、仮想ロボットを生成している。仮想ロボットは、テーブル４２の上に構築されており、このテーブル４２は、実際のものであっても、仮想的なものであってもよい。示される例においては、ユーザは、仮想ツール４４を適用しており、この例においては、ロボットの一部分を着色するためのペインティングツールを適用している。１つまたは複数のカメラの視点からの仮想コンテンツおよび実コンテンツを表示するための本技術は、コンテンツ生成アプリケーション以外の、多種多様な複合現実アプリケーションと共に使用されることもある。
【０００７】
[0018]  仮想オブジェクトと、実オブジェクトとを含む複合現実環境は、処理ユニット４と一緒に機能するヘッドマウントディスプレイデバイス２を経由してユーザ１８によって見ることができる。ヘッドマウントディスプレイデバイス２は、柔軟性のあるケーブル６を経由して処理ユニット４と通信することができる。ヘッドマウントディスプレイデバイスは、代わりに、処理ユニット４とワイヤレスに通信することもできる。さらなる実施形態においては、処理ユニット４は、ヘッドマウントディスプレイデバイス２の中に一体化されていることもある。一実施形態において、めがねの形状をしている、ヘッドマウントディスプレイデバイス２は、ユーザの頭の上に着用され、その結果、ユーザは、ディスプレイを通して見ることができ、またそれによって、ユーザの前の空間についての実際の直接のビューを有することができる。ヘッドマウントディスプレイデバイス２と、処理ユニット４とについてのさらなる詳細が、以下で提供される。
【０００８】
[0019]  処理ユニット４は、ゲームアプリケーションや非ゲームアプリケーションなどのアプリケーションを実行するハードウェアコンポーネントおよび／またはソフトウェアコンポーネントを含むことができる。一実施形態においては、処理ユニット４は、本明細書において説明されるプロセスを実行するためのプロセッサ読取り可能ストレージデバイスの上に記憶される命令を実行することができる、標準プロセッサ、専用プロセッサ、マイクロプロセッサなどのプロセッサを含むことができる。実施形態においては、処理ユニット４は、１つまたは複数のリモートコンピューティングシステムにワイヤレスに（例えば、ＷｉＦｉ（登録商標）通信手段、ブルートゥース（登録商標）通信手段、赤外線通信手段、または他のワイヤレス通信手段で）通信することができる。これらのリモートコンピューティングシステムは、コンピュータ、ゲームシステムまたはゲームコンソール、あるいはリモートサービスプロバイダを含むことができる。
【０００９】
[0020]  ヘッドマウントディスプレイデバイス２と、処理ユニット４とは、互いに協調して、複合現実環境１０においてユーザに仮想オブジェクトを、例えば、オブジェクト４０、４４を提示することができる。本技術の態様に従って、複合現実環境１０は、他の人たちが見る外部モニタに表示され得る複合現実環境１０のビューを生成するために使用され得る１つまたは複数のカメラアセンブリ５０をさらに含むことができる。具体的には、カメラアセンブリ５０を使用して、ヘッドマウントディスプレイデバイス２を着用していない他の人たちにより、モニタ上で見られ得る、仮想オブジェクトと、実オブジェクトとを含む複合現実環境１０のビューを生成することができる。
【００１０】
[0021]  示される例においては、カメラアセンブリ５０は、カメラアセンブリ５０ａおよび５０ｂを含んでいる。しかしながら、本技術は、さらなる実施形態においては、単一のカメラアセンブリ５０、または２つよりも多いカメラアセンブリ５０を用いて動作することもできることが理解される。特定のカメラビューが選択されるときに、複合現実環境の中の仮想オブジェクトと、実オブジェクトとは、選択されたカメラアセンブリの視点から、外部モニタに表示されることもある。すなわち、現実世界オブジェクトは、選択されたカメラアセンブリの物理的ロケーションのビュー視点からモニタに表示されることもある。また仮想オブジェクトは、選択されたカメラアセンブリの物理的ロケーションのビュー視点からモニタに表示されることもある。
【００１１】
[0022]  例えば、カメラアセンブリ５０ａが選択された場合、複合現実環境のビューは、図２に示されるように、カメラアセンブリ５０ａの物理的ロケーションの視点からのものになるであろう。例えば、ユーザ１８、カメラアセンブリ５０ｂ、場合によってはテーブル４２などの現実世界オブジェクトは、カメラアセンブリ５０ａの錐台視野の内部にある。それゆえに、カメラアセンブリ５０ａによるそのような現実世界オブジェクトについての取り込まれる画像は、カメラアセンブリ５０ａの視点からモニタ６０の上に表示されることもある。複数のカメラアセンブリが、同時に選択されることもあり、その結果、複数のカメラアセンブリのビューが、同時に１つまたは複数のモニタ６０の上に示されることが、理解される。
【００１２】
[0023]  同様に、複合現実環境の内部の仮想オブジェクトは、３次元空間の中に規定された位置を有しており、また仮想オブジェクトが見られるビュー視点（viewing perspective）に応じて、異なる角度および側から見られることもある。図２において、仮想コンテンツ４０や仮想ツール４４などの仮想オブジェクトは、カメラアセンブリ５０ａの錐台視野の内部にある。したがって、そのような仮想オブジェクトは、カメラアセンブリ５０ａの位置と一致する３次元空間の中の位置からモニタ６０の上に表示されることもある。結果は、カメラアセンブリ５０ａの視点からモニタ６０の上の複合現実環境１０のビューである。図１において、仮想オブジェクトと、実オブジェクトとは、与えられた視点から示される。この視点は、例えば、別のユーザによって着用される第２のヘッドマウントディスプレイデバイス２（図示されず）を通して見られる可能性がある。この視点は、代わりに、例えば、第３のカメラアセンブリ５０（図示されず）の位置から取り込まれるモニタ６０の上で見られる可能性もある。
【００１３】
[0024]  実施形態においては、処理ユニット４（単独で、または他の処理ユニットと組み合わされて機能している）は、部屋または他の環境の中で、ユーザのｘ、ｙ、ｚデカルト位置を含む環境と、現実世界オブジェクトと、仮想３次元オブジェクトとのモデルを構築することができる。各ヘッドマウントディスプレイデバイス２の位置は、以下で説明されるように、複合現実環境のモデルに対してキャリブレーションされることもある。各カメラアセンブリ５０の位置はまた、以下で説明されるように、複合現実環境のモデルに対してキャリブレーションされる可能性もある。さらなる実施形態において、１つまたは複数のヘッドマウントディスプレイデバイス２と、カメラアセンブリ５０との位置は、複合現実環境に対する代わりに、互いにキャリブレーションされることもある。本明細書においてシーンマップと称される環境の３次元モデル、ならびに各ユーザのＦＯＶのすべてのトラッキング、各カメラアセンブリの錐台、および環境の中のオブジェクトは、モバイル処理ユニット４それ自体によって生成され、または以下で説明されるように他の処理デバイスと協力して機能している可能性がある。
【００１４】
[0025]  これらのキャリブレーションオペレーションは、システムが、複合現実環境の各ユーザの視線およびＦＯＶと、複合現実環境の各カメラアセンブリの視線および錐台視野とを決定することを可能にする。したがって、仮想画像は、各ユーザに表示されることもあるが、システムは、各ユーザの視点、またはカメラアセンブリの視点からの仮想画像のディスプレイを決定する。さらに、以下で説明されるように、ヘッドマウントディスプレイデバイス２と、カメラアセンブリ５０とは、深さセンサおよび／または他のイメージセンサを含むことができる。これらのセンサは、与えられたデバイス２の視点、またはカメラアセンブリ５０の視点から、第１の仮想オブジェクトが、第２の仮想オブジェクトまたは実オブジェクトを閉塞しているか、あるいは第２の仮想オブジェクトまたは実オブジェクトによって閉塞されているかを決定することができる。
【００１５】
[0026]  図３は、外部モニタ６０およびコンピューティングシステム７０と通信しているカメラアセンブリ５０の概略ブロック図である。コンピューティングシステム７０は、処理ユニット４であるか、または処理ユニット４を含むことができ、あるいは代わりに、コンピューティングシステム７０は、処理ユニット４と一緒に機能することもできる。図３に示されるカメラアセンブリ５０は、本明細書において説明されるカメラアセンブリ５０のうちのどれかとすることもできる。１つまたは複数のカメラアセンブリ５０は、複合現実環境１０の内部の、または周囲のどこかに位置して、任意の角度から複合現実環境１０の内部の実オブジェクトおよび／または仮想オブジェクトを取り込むことができる。カメラアセンブリ５０は、例えば、三脚の上に取り付けられ、あるいはそれ以外の方法で複合現実環境の中の、または周囲の望ましい位置で支えられて、複合現実環境の鳥瞰図を提供することができる。鳥瞰図は、複合現実環境の横から、下から、上から、または内部からの複合現実環境のビューである。カメラアセンブリは、固定された位置にあることもあり、またはそれらは、複合現実環境の内部をあちこち動き回ることができる。
【００１６】
[0027]  カメラアセンブリ５０は、カメラ５２と、位置センサ５４と、イメージセンサ５６とを含む。カメラアセンブリ５０は、さらなる実施形態においては、追加のコンポーネントを含むことができる。カメラ５２は、カリフォルニア州、アーバイン市のＲｅｄ．ｃｏｍ社からの、例えば、Ｓｃａｒｌｅｔ（登録商標）カメラなどのビデオカメラとすることができる。他のビデオカメラも企図される。実施形態においては、カメラ５２は、動的な実オブジェクトのビデオを取り込み、またそれらが、移動し、または変化するときにそれらを表示することができる。さらなる実施形態においては、カメラアセンブリ５０のカメラ５２は、代わりに、または追加して、実オブジェクトの静止画像を取り込むことができる。
【００１７】
[0028]  位置センサ５４を使用して、仮想オブジェクト、他のカメラアセンブリ５０、および／またはヘッドマウントディスプレイデバイス２に対して、複合現実環境１０の内部のカメラアセンブリ５０の位置をキャリブレーションすることができる。例においては、位置センサ５４は、以下で説明される慣性測定ユニット１３２に類似した慣性測定ユニットとすることができる。位置センサ５４の慣性測定ユニットは、３軸磁力計、３軸ジャイロ、および／または３軸加速度計などの慣性センサを含むことができる。慣性測定ユニットは、カメラアセンブリ５０の位置、方向付け、および突然の加速度（ピッチ、ロールおよびヨー）を検知する。カメラアセンブリ５０（またはヘッドマウントディスプレイデバイス２）の位置および方向付けは、本明細書においては、カメラアセンブリ５０（またはヘッドマウントディスプレイデバイス２）のポーズと称される。慣性測定ユニットは、磁力計、ジャイロおよび加速度計に加えて、または磁力計、ジャイロおよび加速度計の代わりに他の慣性センサを含むことができる。
【００１８】
[0029]  例えば、以前の時間からのカメラアセンブリ５０の知られている位置および方向付けを使用して、位置センサ５４の慣性測定ユニットを使用して、カメラアセンブリ５０の位置および方向付けを決定することができる。次いで、慣性測定ユニットからの慣性情報を使用して、カメラアセンブリ５０の位置および方向付けをアップデートすることができる。慣性測定ユニットからの情報は、カメラアセンブリについての正確な運動学的データを提供することができるが、慣性測定ユニットは、一般的に、カメラアセンブリの位置に関する絶対的な位置情報を提供することはない。「グラウンドトゥルース」とも称される、この絶対的な位置情報は、カメラアセンブリ５０のカメラ５２および／またはイメージセンサ５６から取得される画像データから提供される可能性がある。
【００１９】
[0030]  以下で説明されるように、ヘッドマウントデバイス２は、慣性測定ユニット１３２を含んでいる。したがって、実施形態においては、位置センサ５４は、カメラ５２に取り付けられたヘッドマウントディスプレイデバイス２とすることができ、またはヘッドマウントディスプレイデバイス２を含むことができる。そのような実施形態においては、慣性測定ユニット１３２（および場合によっては、以下で説明される他のアセンブリのいくつか）は、位置センサ５４の一部分としてアクティブとすることができ、また以下で説明される他のアセンブリ（例えば、マイクロディスプレイ１２０）は、ディスエイブルにされ、またはそれ以外の方法で、非アクティブである可能性がある。
【００２０】
[0031]  イメージセンサ５６を使用して、複合現実環境１０の内部のカメラアセンブリ５０から現実世界オブジェクトへの深さデータを取得することができる。実施形態においては、イメージセンサ５６は、例えば、ワシントン州、レッドモンド市のマイクロソフト社が発売したＸｂｏｘ  Ｏｎｅ（登録商標）プラットフォームと共に使用されるＫｉｎｅｃｔ（登録商標）カメラとすることができる。画像センサ５６からのデータを使用して、ヘッドマウントディスプレイデバイス２に関して以下で説明される不透明フィルタ１１４と同一の不透明フィルタを実装することができる。そのような不透明フィルタは、カメラアセンブリ５０の視点からのビューから部分的に、または完全にブロックされる仮想オブジェクトが、適切なオクルージョンと共に表示されることを保証する。
【００２１】
[0032]  カメラアセンブリ５０は、ケーブル６２を経由してモニタ６０と通信することができる。モニタ６０は、例えば、ユーザにビデオおよび／またはオーディオを提供することができるテレビジョン、モニタ、高精細度テレビジョン（HDTV: high-definition television）などとすることができる。例えば、カメラアセンブリ５０は、グラフィックスカードなどのビデオアダプタ、および／または複合現実環境１０に関連するオーディオ／ビジュアル信号を提供することができるサウンドカードなどのオーディオアダプタを含むことができる。モニタ６０は、カメラアセンブリ５０からオーディオ／ビジュアル信号を受信することができ、また次いで、モニタ６０を見ている任意数の人々にオーディオ／ビジュアルに関連するビデオおよび／またはオーディオを出力することができる。モニタは、２次元モニタ、または３次元モニタとすることができる。さらなる実施形態においては、カメラアセンブリ５０からモニタへとフィードを送信する代わりに、フィードはヘッドマウントディスプレイデバイス２へと送信されることもある。このデバイス２は、１つまたは複数のカメラアセンブリ５０がある環境の中に存在するユーザ１８によって着用されることもあり、あるいはこのデバイス２は、遠くにあり、ユーザ１８以外のユーザによって着用されることもある。
【００２２】
[0033]  カメラアセンブリ５０のすべてが、単一モニタ６０に接続されることもある。さらに、単一モニタ６０の代わりに、１つまたは複数のカメラアセンブリ５０が、多数のモニタ６０にオーディオ／ビデオ信号を出力することができることが、理解される。実施形態においては、２つのモニタ６０が存在しており、１つは、生カメラフィード（現実世界オブジェクトだけを含んでいる）を表示しており、また第２のものは、同じ生カメラフィードを示しているが、さらに、生カメラフィードと融合された仮想オブジェクトを表示していることが、企図される。一実施形態によれば、モニタ６０は、ケーブル６２を経由してカメラアセンブリ５０に接続されることもあり、このケーブルは、例えば、ＳＤＩビデオケーブル、Ｓ−ビデオケーブル、同軸ケーブル、ＨＤＭＩケーブル、ＤＶＩケーブル、ＶＧＡケーブル、コンポーネントビデオケーブルなどとすることができる。カメラアセンブリ５０からのフィードは、リアルタイム表示のためにモニタに送信されることもあり、あるいはそれは、その後の再生のために（任意の仮想オブジェクトが、同様に、その後の再生のために記憶されて）記録されることもある。アタッチされたモニタ６０にフィードを送信する代わりに、フィードは、ウェブサーバに記憶されることもあり、またウェブストリームとしてアクセス可能にされ、またはそれ以外の方法でリモートロケーションにブロードキャストされることもある。
【００２３】
[0034]  以下で説明されるように、ヘッドマウントディスプレイデバイス２と、処理ユニット４とを使用して、複合現実環境１０の内部の仮想オブジェクトと、実オブジェクトと、カメラアセンブリとの３次元座標を含むシーンマップを規定することができる。しかしながら、実施形態においては、処理ユニット４および／またはコンピューティングシステム７０と一緒に機能する１つまたは複数のカメラアセンブリ５０は、シーンマップを決定する際に支援することができる。コンピューティングシステム７０が、処理ユニット４と分離している場合には、コンピューティングシステム７０は、例えば、上記で説明されるようなケーブル６２を用いて、カメラアセンブリ５０に結合されることもある。さらなる実施形態（コンピューティングシステム７０が、処理ユニット４と同じ、または処理ユニット４とは異なる場合）においては、コンピューティングシステム７０は、カメラアセンブリ５０から遠くにあり、また何らかの他の有線ネットワークまたはワイヤレスネットワークによってそれに接続されることもある。コンピューティングシステム７０は、すべてのカメラアセンブリ５０および／またはヘッドマウントディスプレイデバイス２と通信していることができる。
【００２４】
[0035]  図４および５は、ヘッドマウントディスプレイデバイス２の斜視図および側面図を示す。図５は、テンプル１０２と、鼻ブリッジ１０４とを有するデバイスの一部分を含むヘッドマウントディスプレイデバイス２の右側面だけを示す。サウンドを記録し、またそのオーディオデータを処理ユニット４に送信するためのマイクロフォン１１０が、以下で説明されるように鼻ブリッジ１０４に組み込まれている。ヘッドマウントディスプレイデバイス２の前に、ビデオ画像と静止画像とを取り込むことができる部屋に面しているビデオカメラ１１２が、存在している。これらの画像は、以下で説明されるように処理ユニット４に送信される。
【００２５】
[0036]  ヘッドマウントディスプレイデバイス２のフレームの一部分は、ディスプレイ（１つまたは複数のレンズを含む）を取り囲むであろう。ヘッドマウントディスプレイデバイス２のコンポーネントを示すために、ディスプレイを取り囲むフレームの一部分は、示されていない。ディスプレイは、光誘導光学的要素１１５と、不透明フィルタ１１４と、シースルーレンズ１１６と、シースルーレンズ１１８とを含む。一実施形態においては、不透明フィルタ１１４は、シースルーレンズ１１６の背後にあり、またシースルーレンズ１１６と位置合わせされており、光誘導光学的要素１１５は、不透明フィルタ１１４の背後にあり、また不透明フィルタ１１４と位置合わせされており、またシースルーレンズ１１８は、光誘導光学的要素１１５の背後にあり、また光誘導光学的要素１１５と位置合わせされている。シースルーレンズ１１６および１１８は、めがねで使用される標準レンズであり、またどのような処方箋（処方箋の無い場合を含む）に対しても用いられる可能性がある。一実施形態においては、シースルーレンズ１１６および１１８は、可変の処方レンズによって置換される可能性がある。不透明フィルタ１１４は、（ピクセルごとに基づいて、または一様に、のいずれかで）自然光にフィルタを掛けて取り除いて、仮想イメージのコントラストを向上させる。光誘導光学的要素１１５は、目に人工的な光を導く。不透明フィルタ１１４と光誘導光学的要素１１５について、さらなる詳細が以下で提供される。
【００２６】
[0037]  テンプル１０２に対して、またはテンプル１０２の内側に取り付けられて、画像ソースがあり、この画像ソースは、（一実施形態においては）仮想画像を投影するためのマイクロディスプレイ１２０と、マイクロディスプレイ１２０から光誘導光学的要素１１５へと画像を方向付けるためのレンズ１２２とを含んでいる。一実施形態においては、レンズ１２２は、コリメータレンズである。
【００２７】
[0038]  制御回路１３６は、ヘッドマウントディスプレイデバイス２の他のコンポーネントをサポートする様々なエレクトロニクスを提供する。制御回路１３６のさらなる詳細は、図６に関して、以下で提供される。イヤホン１３０と、慣性測定ユニット１３２と、温度センサ１３８とが、テンプル１０２の内側にあり、またはテンプル１０２に取り付けられている。図６に示される一実施形態においては、慣性測定ユニット１３２（すなわちIMU１３２）は、３軸磁力計１３２Ａ、３軸ジャイロ１３２Ｂ、３軸加速度計１３２Ｃなどの慣性センサを含んでいる。慣性測定ユニット１３２は、ヘッドマウントディスプレイデバイス２の位置と、方向付けと、突然の加速度（ピッチ、ロールおよびヨー）とを検知する。ＩＭＵ１３２は、磁力計１３２Ａ、ジャイロ１３２Ｂ、および加速度計１３２Ｃに加えて、または磁力計１３２Ａ、ジャイロ１３２Ｂ、および加速度計１３２Ｃの代わりに他の慣性センサを含むことができる。
【００２８】
[0039]  マイクロディスプレイ１２０は、レンズ１２２を通して画像を投影する。マイクロディスプレイ１２０を実装するために使用され得る異なる画像生成技術が、存在している。例えば、マイクロディスプレイ１２０は、透過型投影技術を使用する際に実装される可能性があり、ここで光源は、白色光のバックライト付きの、光学的にアクティブな材料によって変調される。これらの技術は、通常、強力なバックライトと、高い光エネルギー密度とを有するＬＣＤタイプディスプレイを使用して、実装される。マイクロディスプレイ１２０は、外部光が、光学的にアクティブな材料によって反射され、また変調される反射技術を使用して実装される可能性もある。照明は、技術に応じて、白色光源またはＲＧＢ光源のいずれかによって点灯されて転送される。デジタル光処理（DLP: digital light processing）技術と、液晶オンシリコン（LCOS: liquid crystal on silicon）技術と、クアルコム社のＭｉｒａｓｏｌ（登録商標）ディスプレイ技術は、ほとんどのエネルギーが、変調された構造から反射され、また本システムにおいて使用され得るので、効率のよい反射技術の例である。さらに、マイクロディスプレイ１２０は、光が、ディスプレイによって生成される場合の放射技術を使用して実装される可能性がある。例えば、マイクロビジョン社のＰｉｃｏＰ（登録商標）ディスプレイエンジンは、透過型要素としての役割を果たす微少スクリーンの上へ、または目の中に直接ビーム送信（例えば、レーザ）、のいずれかのマイクロミラーステアリングを用いてレーザ信号を放射する。
【００２９】
[0040]  光誘導光学的要素１１５は、マイクロディスプレイ１２０からヘッドマウントディスプレイデバイス２を着用するユーザの目１４０へと光を送信する。光誘導光学的要素１１５はまた、ヘッドマウントディスプレイデバイス２の前からの光が、矢印１４２によって示されるように、光誘導光学的要素１１５を通して目１４０に送信されることを可能にしており、それによって、ユーザが、マイクロディスプレイ１２０から仮想画像を受信することに加えて、ヘッドマウントディスプレイデバイス２の前の空間に実際の直接のビューを有することを可能にしている。それゆえに、光誘導光学的要素１１５の壁は、シースルーである。光誘導光学的要素１１５は、第１の反射表面１２４（例えば、ミラー表面または他の表面）を含んでいる。マイクロディスプレイ１２０からの光は、レンズ１２２を通過し、反射表面１２４の上に入射するようになる。反射表面１２４は、光が、内部反射によって光誘導光学的要素１１５を備えている平面基板の内側にトラップされるように、マイクロディスプレイ１２０からの入射光を反射する。基板の表面からのいくつかの反射の後に、トラップされた光の波は、選択的に反射する表面１２６のアレイに到達する。５つの表面のうちの１つだけが、ラベル１２６付けされて、図面が過密になることを防止していることに注意すべきである。反射表面１２６は、これらの反射表面に入射する光の波を基板からユーザの目１４０へと結合する。
【００３０】
[0041]  異なる光線が、異なる角度で伝わり、また基板の内側から反射することになるので、異なる光線は、異なる角度で、様々な反射表面１２６に当たることになる。それゆえに、異なる光線は、反射表面のうちの異なる反射表面によって基板の外側に反射されることになる。どの光線が、どの表面１２６によって基板の外側に反射されることになるかについての選択は、表面１２６の適切な角度を選択することによって設計される。光誘導光学的要素についてのさらなる詳細は、２００８年１１月２０日に公開された「Ｓｕｂｓｔｒａｔｅ−Ｇｕｉｄｅｄ  Ｏｐｔｉｃａｌ  Ｄｅｖｉｃｅｓ」という名称の米国特許公開第２００８／０２８５１４０号の中で見出される可能性がある。一実施形態においては、それぞれの目は、それ自体の光誘導光学的要素１１５を有するであろう。ヘッドマウントディスプレイデバイス２が、２つの光誘導光学的要素を有するときに、それぞれの目は、両方の目に同じ画像を、または２つの目に異なる画像を表示することができるそれ自体のマイクロディスプレイ１２０を有することができる。別の実施形態においては、両方の目の中に光を反射する１つの光誘導光学的要素が存在する可能性もある。
【００３１】
[0042]  光誘導光学的要素１１５と位置合わせされている不透明フィルタ１１４は、一様に、またはピクセル当たりに基づいて、のいずれかで、光誘導光学的要素１１５を通過しないように自然光を選択的にブロックする。不透明フィルタ１１４の一例についての詳細は、２０１０年９月２１日に出願された「Ｏｐａｃｉｔｙ  Ｆｉｌｔｅｒ  Ｆｏｒ  Ｓｅｅ−Ｔｈｒｏｕｇｈ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ」という名称のＢａｒ−Ｚｅｅｖ他による米国特許公開第２０１２／００６８９１３号の中で提供されている。しかしながら、一般に、不透明フィルタ１１４の一実施形態は、シースルーＬＣＤパネル、エレクトロクロミックフィルム、または不透明フィルタとしての機能を果たすことができる類似したデバイスとすることができる。不透明フィルタ１１４は、ピクセルの高密度グリッドを含むことができ、ここで、各ピクセルの光透過率は、最小透過率と、最大透過率との間で、個別に制御可能である。０〜１００％の透過率の範囲が理想的であるが、例えば、ピクセル当たりに約５０％から９０％までなどのより制限された範囲もまた、許容可能である。
【００３２】
[0043]  アルファ値のマスクが、現実世界オブジェクトについてのプロキシを用いたｚ−バッファリングの後に、レンダリングパイプラインから使用される可能性がある。システムが、複合現実ディスプレイについてのシーンをレンダリングするときは、以下で説明されるように、どの現実世界オブジェクトが、どの仮想オブジェクトの前にあるかに注意する。仮想オブジェクトが、現実世界オブジェクトの前にある場合、そのときには不透明性が、仮想オブジェクトのカバレッジエリアについて、オンである可能性がある。仮想オブジェクトが、現実世界オブジェクトの背後に（仮想的に）ある場合、そのときには不透明性は、そのピクセルについてのどのようなカラーとも同様に、オフである可能性があり、そのようにして、ユーザは、実際光のその対応するエリア（サイズが１ピクセル以上）について、現実世界オブジェクトのみを見ることになる。カバレッジは、ピクセルごとに基づいたものになり、そのようにして、システムは、仮想オブジェクトの一部分が、現実世界オブジェクトの前にあり、仮想オブジェクトの一部分が、現実世界オブジェクトの背後にあり、また仮想オブジェクトの一部分が、現実世界オブジェクトと一致している場合を取り扱うことができる。低いコスト、電力、および重さで０％から１００％までの不透明性に進むことができるディスプレイは、この使用のために最も望ましい。さらに、不透明フィルタは、カラーＬＣＤを用いて、または有機ＬＥＤなどの他のディスプレイを用いて、カラーでレンダリングされる可能性もある。
【００３３】
[0044]  ヘッドマウントディスプレイデバイス２はまた、ユーザの目の位置を追跡するためのシステムを含んでいる。以下で説明されることになるように、本システムは、ユーザの位置と方向付けとを追跡することになり、その結果、本システムは、ユーザのＦＯＶを決定することができる。代替的な実施形態においては、本システムは、ユーザのＦＯＶの測定を改良するためにユーザの目の位置を追跡するための技術を含むことができる。例えば、ヘッドマウントディスプレイデバイス２は、アイトラッキングアセンブリ（図示されず）を含むことができ、このアイトラッキングアセンブリは、アイトラッキング照明デバイスと、アイトラッキングカメラとを有する。一実施形態においては、アイトラッキング照明デバイスは、１つまたは複数の赤外線（IR: infrared）エミッタを含んでおり、この赤外線（IR）エミッタは、目に向かってＩＲ光を放射する。アイトラッキングカメラは、反射されたＩＲ光を検知する１つまたは複数のカメラを含んでいる。ひとみの位置は、角膜の反射を検出すると知られているイメージング技法によって識別される可能性がある。例えば、２００８年７月２２日に発行された「Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｅｙｅ  Ｔｒａｃｋｉｎｇ  ａｎｄ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ」という名称の米国特許第７，４０１，９２０号を参照のこと。そのような技法は、カメラを追跡することに関連した目の中心の位置を位置づけることができる。一般に、アイトラッキングは、目の画像を取得すること、およびコンピュータビジョン技法を使用して、眼窩の内部のひとみのロケーションを決定することを含む。一実施形態においては、目は、通常、調和して動くので、１つの目のロケーションを追跡することで、十分である。しかしながら、それぞれの目を別々に追跡することも可能である。
【００３４】
[0045]  図５は、ヘッドマウントディスプレイデバイス２の２分の１を示しているにすぎない。完全なヘッドマウントディスプレイデバイスは、もう１組のシースルーレンズと、もう１つの不透明フィルタと、もう１つの光誘導光学的要素と、もう１つのマイクロディスプレイ１２０と、もう１つのレンズ１２２と、部屋に面したカメラと、イヤホンと、温度センサとを含むことができる。
【００３５】
[0046]  図６は、ヘッドマウントディスプレイデバイス２の様々なコンポーネントを示すブロック図である。図７は、処理ユニット４の様々なコンポーネントを説明するブロック図である。そのコンポーネントが図６に示されるヘッドマウントディスプレイデバイス２を使用して、現実世界のユーザのビューと、１つまたは複数の仮想画像をシームレスに融合することにより、ユーザに仮想体験を提供している。さらに、図６のヘッドマウントディスプレイデバイスコンポーネントは、様々な状態を追跡する多数のセンサを含んでいる。ヘッドマウントディスプレイデバイス２は、処理ユニット４からの仮想画像についての命令を受信することになり、またセンサ情報を処理ユニット４に提供して戻すことになる。処理ユニット４は、図６のヘッドマウントディスプレイデバイスに従って、どこで、またいつ仮想画像をユーザに、提供し、また命令を送信すべきかを決定することができる。
【００３６】
[0047]  図６のコンポーネントのうちのいくつか（例えば、部屋に面したカメラ１１２と、マイクロディスプレイ１２０と、不透明フィルタ１１４と、イヤホン１３０と、温度センサ１３８と）は、シャドウの形で示されて、ヘッドマウントディスプレイデバイス２の左側に１つと、右側に１つ、これらのデバイスが、それぞれ２つ存在していることを示している。図６は、電力管理回路２０２と通信している制御回路２００を示すものである。制御回路２００は、プロセッサ２１０と、メモリ２１４（例えば、D-RAM）と通信しているメモリ制御装置２１２と、カメラインターフェース２１６と、カメラバッファ２１８と、ディスプレイドライバ２２０と、ディスプレイフォーマッタ２２２と、タイミングジェネレータ２２６と、ディスプレイアウトインターフェース２２８と、ディスプレイインインターフェース２３０とを含む。
【００３７】
[0048]  一実施形態においては、制御回路２００のコンポーネントは、専用の回線、または１つまたは複数のバスを経由して、互いに通信している。別の実施形態においては、制御回路２００のコンポーネントは、プロセッサ２１０と通信している。カメラインターフェース２１６は、２つの部屋に面したカメラ１１２にインターフェースを提供し、また部屋に面したカメラから受信される画像をカメラバッファ２１８に記憶する。ディスプレイドライバ２２０は、マイクロディスプレイ１２０を駆動するであろう。ディスプレイフォーマッタ２２２は、マイクロディスプレイ１２０の上に表示されている仮想画像についての情報を不透明制御回路２２４に提供し、この不透明制御回路２２４は、不透明フィルタ１１４を制御する。タイミングジェネレータ２２６を使用して、システムについてのタイミングデータを提供する。ディスプレイアウトインターフェース２２８は、部屋に面したカメラ１１２から処理ユニット４へと画像を提供するためのバッファである。ディスプレイインインターフェース２３０は、マイクロディスプレイ１２０の上に表示されるべき仮想画像などの画像を受信するためのバッファである。ディスプレイアウトインターフェース２２８と、ディスプレイインインターフェース２３０とは、処理ユニット４に対するインターフェースであるバンドインターフェース２３２と通信する。
【００３８】
[0049]  電力管理回路２０２は、電圧レギュレータ２３４と、アイトラッキング照明ドライバ２３６と、オーディオのＤＡＣおよび増幅器２３８と、マイクロフォン前置増幅器およびオーディオＡＤＣ２４０と、温度センサインターフェース２４２と、クロックジェネレータ２４４とを含む。電圧レギュレータ２３４は、処理ユニット４からバンドインターフェース２３２を経由して電力を受け取り、またその電力をヘッドマウントディスプレイデバイス２の他のコンポーネントに供給する。オーディオのＤＡＣおよび増幅器２３８は、オーディオ情報をイヤホン１３０に出力する。マイクロフォン前置増幅器およびオーディオＡＤＣ２４０は、マイクロフォン１１０についてのインターフェースを提供する。温度センサインターフェース２４２は、温度センサ１３８についてのインターフェースである。電力管理回路２０２はまた、電力を供給し、３軸磁力計１３２Ａと、３軸ジャイロ１３２Ｂと、３軸加速度計１３２Ｃとからデータを受信して戻す。
【００３９】
[0050]  図７は、処理ユニット４の様々なコンポーネントを説明するブロック図である。図７は、電力管理回路３０６と通信している制御回路３０４を示す。制御回路３０４は、中央演算処理装置（CPU: central processing unit）３２０と、グラフィックス処理ユニット（GPU: graphics processing unit）３２２と、キャッシュ３２４と、ＲＡＭ３２６と、メモリ３３０（例えば、D-RAM）と通信しているメモリ制御装置３２８と、フラッシュメモリ３３４（または他のタイプの不揮発性ストレージ）と通信しているフラッシュメモリ制御装置３３２と、バンドインターフェース３０２およびバンドインターフェース２３２を経由してヘッドマウントディスプレイデバイス２と通信しているディスプレイアウトバッファ３３６と、バンドインターフェース３０２およびバンドインターフェース２３２を経由してヘッドマウントディスプレイデバイス２と通信しているディスプレイインバッファ３３８と、マイクロフォンに接続するための外部マイクロフォンコネクタ３４２と通信しているマイクロフォンインターフェース３４０と、ワイヤレス通信デバイス３４６に接続するためのＰＣＩエクスプレスインターフェースと、ＵＳＢポート（単数または複数）３４８とを含む。一実施形態においては、ワイヤレス通信デバイス３４６は、ＷｉＦｉ（登録商標）イネーブルド通信デバイス、ブルートゥース（登録商標）通信デバイス、赤外線通信デバイスなどを含むことができる。処理ユニット４の上にデータまたはソフトウェアをロードし、同様に処理ユニット４に充電するために、ＵＳＢポートを使用して、処理ユニット４を処理ユニットコンピューティングシステム２２にドッキングさせることができる。一実施形態においては、ＣＰＵ３２０およびＧＰＵ３２２は、仮想３次元オブジェクトをどこで、いつ、またどのようにしてユーザの視野に挿入すべきかを決定するための主要な役に立つ機械である。さらなる詳細が、以下で提供される。
【００４０】
[0051]  電力管理回路３０６は、クロックジェネレータ３６０と、アナログデジタル変換器３６２と、バッテリ充電器３６４と、電圧レギュレータ３６６と、ヘッドマウントディスプレイ電源３７６と、温度センサ３７４（場合によっては処理ユニット４のリストバンドの上に位置している）と通信している温度センサインターフェース３７２とを含む。アナログデジタル変換器３６２を使用して、バッテリ電圧、温度センサを監視し、またバッテリ充電機能を制御する。電圧レギュレータ３６６は、電力をシステムに供給するためのバッテリ３６８と通信している。バッテリ充電器３６４を使用して、充電ジャック３７０から電力を受け取るとすぐに、（電圧レギュレータ３６６を経由して）バッテリ３６８を充電する。ＨＭＤ電源３７６は、ヘッドマウントディスプレイデバイス２に電力を供給する。
【００４１】
[0052]  図８は、ディスプレイデバイス２の部屋に面したカメラ１１２と、処理ユニット４の上のソフトウェアモジュールのうちのいくつかと、を含むモバイル複合現実アセンブリ３０の高レベルブロック図を示す。これらのソフトウェアモジュールのうちのいくつかまたはすべては、代わりに、ヘッドマウントディスプレイデバイス２のプロセッサ２１０の上に実装されることもある。
【００４２】
[0053]  示されるように、部屋に面したカメラ１１２は、ヘッドマウントディスプレイデバイス２の中のプロセッサ２１０に画像データを提供する。一実施形態においては、部屋に面したカメラ１１２は、深さカメラと、ＲＧＢカラー画像カメラと、ＩＲ光コンポーネントとを含んでいて、シーンの画像データを取り込むことができる。以下で説明されるように、部屋に面したカメラ１１２は、これらのコンポーネントのすべてよりも少ないものを含むことができる。
【００４３】
[0054]  例えば、飛行時間分析を使用して、ＩＲ光コンポーネントは、シーンの上に赤外光を放射することができ、また次いで、センサ（図示されず）を使用して、例えば、深さカメラ、および／またはＲＧＢカメラを使用して、シーンの中の１つまたは複数のオブジェクトの表面からの後方散乱された光を検出することができる。いくつかの実施形態においては、パルス赤外光が、発信光パルスと、対応する着信光パルスとの間の時間が測定され、またその時間を使用して、例えば、ユーザの手を含めて、部屋に面したカメラ１１２からシーンの中のオブジェクトの上の特定のロケーションへの物理的距離を決定することができる。さらに、他の例示の実施形態においては、発信する光波の位相は、着信する光波の位相と比較されて、位相シフトを決定することができる。次いで、位相シフトを使用して、取り込みデバイスからターゲットまたはオブジェクトの上の特定のロケーションに対する物理的距離を決定することができる。
【００４４】
[0055]  別の例示の実施形態によれば、飛行時間分析を使用して、例えば、シャッターされた光パルスイメージングを含む様々な技法を経由して、時間と共に光の反射ビームの強度を分析することにより、部屋に面したカメラ１１２からオブジェクトの上の特定のロケーションまでの物理的距離を間接的に決定することができる。
【００４５】
[0056]  別の例示の実施形態においては、部屋に面したカメラ１１２は、構造化された光を使用して、深さ情報を取り込むことができる。そのような分析においては、パターン化された光（すなわち、グリッドパターン、ストライプパターン、異なるパターンなどの知られているパターンとして表示される光）が、例えば、ＩＲ光コンポーネントを経由して、シーンの上に投影されることもある。シーンの中の１つまたは複数のターゲットまたはオブジェクトの表面に当たったすぐ後に、パターンは、それに応じて変形されるようになる可能性がある。パターンのそのような変形は、例えば、３Ｄカメラおよび／またはＲＧＢカメラ（および／または他のセンサ）によって取り込まれることもあり、また次いで分析されて、部屋に面したカメラ１１２からオブジェクトの上の特定のロケーションまでの物理的距離を決定することができる。いくつかの実装形態においては、ＩＲ光コンポーネントは、深さカメラおよび／またはＲＧＢカメラから移動させられ、そのようにして三角測量を使用して、深さカメラおよび／またはＲＧＢカメラからの距離を決定することができる。いくつかの実装形態においては、部屋に面したカメラ１１２は、ＩＲ光を検知する専用のＩＲセンサ、またはＩＲフィルタを有するセンサを含むことができる。
【００４６】
[0057]  本技術は、深さカメラと、ＲＧＢカメラと、ＩＲ光コンポーネント各々を用いることなく、オブジェクトと、それらオブジェクトの３次元位置とを検知することができることが、理解される。実施形態においては、部屋に面したカメラ１１２は、例えば、標準の画像カメラ（ＲＧＢまたは白黒）のみを用いて機能することができる。そのような実施形態は、個別に、または組み合わされて使用される様々な画像トラッキング技法により、動作することができる。例えば、単一の、標準の画像の、部屋に面したカメラ１１２は、特徴の識別とトラッキングとを使用することができる。すなわち、標準カメラからの画像データを使用して、シーンについての興味のある領域、または特徴を抽出することが可能である。ある期間にわたってこれらの同じ特徴を調べることにより、オブジェクトについての情報は、３次元空間において、決定されることもある。
【００４７】
[0058]  実施形態においては、ヘッドマウントディスプレイデバイス２は、２つの間隔の開けられた標準画像の部屋に面したカメラ１１２を含むことができる。この例においては、シーンの中のオブジェクトに対する深さは、２つのカメラのステレオ効果によって決定されることもある。各カメラは、何らかのオーバーラップした１組の特徴を撮像することができ、また深さは、それらの視野の中の視差の差から計算される可能性がある。
【００４８】
[0059]  知られていない環境の内部の位置情報を用いてシーンマップを決定するためのさらなる方法は、同時の位置特定およびマッピング（SLAM: simultaneous localization and mapping）として知られている。ＳＬＡＭの１つの例は、「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｌａｎｄｍａｒｋ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ｖｉｓｕａｌ  Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ」という名称の米国特許第７，７７４，１５８号の中で開示されている。さらに、ＩＭＵ１３２からのデータを使用して、視覚トラッキングデータをもっと正確に解釈することができる。
【００４９】
[0060]  処理ユニット４は、シーンマッピングモジュール４５２を含むことができる。上記で説明されるような前に面したカメラ（単数または複数）１１２からのデータを使用して、シーンマッピングモジュールは、シーン（ユーザの手のうちの一方または両方を含む）の中のオブジェクトを３次元座標系にマッピングすることができる。シーンマッピングモジュールについてのさらなる詳細は、以下で説明される。
【００５０】
[0061]  シーンの内部のユーザの位置を追跡するために、ユーザは、画像データから認識されることもある。処理ユニット４は、骨格の認識およびトラッキングモジュール４４８を実装することができる。骨格のトラッキングモジュール４４８の一例は、２０１２年３月２日に出願された「Ｓｋｅｌｅｔａｌ  Ｊｏｉｎｔ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ａｎｄ  Ｔｒａｃｋｉｎｇ  Ｓｙｓｔｅｍ」という名称の米国特許公開第２０１２／０１６２０６５号の中に開示されている。そのようなシステムは、ユーザの手を追跡することもできる。しかしながら、実施形態においては、処理ユニット４は、さらに、手の認識およびトラッキングモジュール４５０を実行することもできる。モジュール４５０は、部屋に面したカメラ１１２から画像データを受信し、またＦＯＶの中のユーザの手と、ユーザの手の位置とを識別することができる。手の認識およびトラッキングモジュール４５０の一例は、２０１１年１１月１８日に出願された「Ｓｙｓｔｅｍ  ｆｏｒ  Ｒｅｃｏｇｎｉｚｉｎｇ  ａｎ  Ｏｐｅｎ  ｏｒ  Ｃｌｏｓｅｄ  Ｈａｎｄ」という名称の米国特許公開第２０１２／０３０８１４０号の中で開示されている。一般に、モジュール４５０は、画像データを検査して、指、指と谷間との間の空間とすることができるオブジェクトの幅および長さを識別することができ、ここで、指は、それらの様々な位置においてユーザの手を識別し、また追跡するために一緒になる。
【００５１】
[0062]  処理ユニット４は、シーンの中の１人または複数人のユーザについての骨格モデルおよび／またはハンドデータを受信し、ユーザが処理ユニット４の上で実行されるアプリケーションに影響を及ぼす所定のジェスチャを実行しているか、またはアプリケーション制御の動作を実行しているかを決定するためのジェスチャ認識エンジン４５４をさらに含むことができる。ジェスチャ認識エンジン４５４についてのさらなる情報は、２００９年４月１３日に出願された「Ｇｅｓｔｕｒｅ  Ｒｅｃｏｇｎｉｚｅｒ  Ｓｙｓｔｅｍ  Ａｒｃｈｉｔｅｃｔｕｒｅ」という名称の米国特許出願第１２／４２２，６６１号の中に見出される可能性がある。
【００５２】
[0063]  上記で述べられるように、ユーザは、オブジェクトを選択し、場合によってはこれらのオブジェクトを修正する口語コマンドの形式の、様々な口頭によるジェスチャを実行することができる。それに応じて、本システムは、音声認識エンジン４５６をさらに含んでいる。音声認識エンジン４５６は、様々な知られている技術のどれかに従って動作することができる。
【００５３】
[0064]  処理ユニット４は、同期ソフトウェアエンジン４８０と、シーンマップに合わせて１つまたは複数のヘッドマウントディスプレイデバイス２とカメラアセンブリ５０とをキャリブレーションするためのキャリブレーションソフトウェアエンジン４８２とをさらに実装することができる。同期エンジン４８０と、キャリブレーションエンジン４８２とのオペレーションは、以下で説明される。
【００５４】
[0065]  上記で指摘されるように、カメラアセンブリ５０は、イメージセンサ５６を含んでいる。一実施形態においては、イメージセンサ５６は、深さカメラと、ＩＲ光コンポーネントとを含んでいて、シーンの画像データを取り込むことができる。これらのコンポーネントを使用して、イメージセンサ５６は、部屋に面したカメラ１１２が画像データを取り込む上記で説明された方法のうちのどれかに従って、カメラアセンブリ５０の視点から、シーンの深さデータを取り込むことができる。イメージセンサ５６が、例えば、深さセンサだけ、ＲＧＢカメラだけ、白黒カメラだけ、または一緒に機能する２つ以上のこれらのセンサ／カメラを使用して、様々な他の技法のうちのどれかによってシーンマップを構築することができることが、さらに理解される。例えば、深さデータは、２つのカラーカメラとステレオ分析とを使用して生成されることもある。そのようなシーンマップは、単一のカメラアセンブリ、または一緒に機能する複数のカメラアセンブリ（および場合によってはヘッドマウントディスプレイデバイス２）からのデータを使用して、構築されることもある。
【００５５】
[0066]  上記で指摘されるように、カメラアセンブリ５０は、コンピューティングシステム７０と通信することができる。コンピューティングシステム７０と処理ユニット４とが、互いに別々になっている場合に、コンピューティングシステム７０は、処理ユニット４の代わりに、または処理ユニット４に追加して、図８に関して上記で説明される処理ユニット４のソフトウェアモジュール４４８、４５０、４５２、４５４、４５６、４８０および／または４８２のうちのいくつかまたはすべてを実行することができる。
【００５６】
[0067]  例示の一実施形態においては、ヘッドマウントディスプレイデバイス２と、処理ユニット４とは、一緒に機能して、ユーザが中におり、またその環境の中の様々な移動するオブジェクト、または静止したオブジェクトを追跡する環境についてのシーンマップまたはモデルを生成する。実施形態においては、１つまたは複数のカメラアセンブリ５０のセンサからのデータは、シーンマップを生成する際に助けとなることができる。これらの特徴は、図９のフローチャートに関して、以下でより詳細に説明される。
【００５７】
[0068]  さらに、処理ユニット４は、ヘッドマウントディスプレイデバイス２の位置および方向付けを追跡することにより、ユーザ１８によって着用されるヘッドマウントディスプレイデバイス２のＦＯＶを追跡する。ヘッドマウントディスプレイデバイス２によって取得される、例えば、部屋に面したカメラ１１２とＩＭＵ１３２とからのセンサ情報は、処理ユニット４に送信される。処理ユニット４は、データを処理し、シーンモデルをアップデートする。処理ユニット４は、さらに、どこに、いつ、またどのようにして、任意の仮想３次元オブジェクトを挿入すべきかについての命令をヘッドマウントディスプレイデバイス２に提供する。同様にして、コンピューティングシステム７０は、１つまたは複数のカメラアセンブリ５０の位置と、方向付けと、錐台視野とを追跡し、それに応じてシーンモデルをアップデートすることができる。これらの特徴はまた、図９のフローチャートに関して、より詳細に説明されることもある。
【００５８】
[0069]  図９は、画像データの単一フレームを生成し、レンダリングし、表示するためにかかる時間などの離散的期間中の、処理ユニット４と、ヘッドマウントディスプレイデバイス２と、１つまたは複数のカメラアセンブリ５０と、コンピューティングシステム７０とのオペレーションと対話性とについての高レベルフローチャートである。実施形態においては、データは、６０Ｈｚのレートで、リフレッシュされることもあるが、データは、さらなる実施形態においては、より頻繁に、またはそれほど頻繁ではないように、リフレッシュされることもある。
【００５９】
[0070]  仮想環境を表現するためのシステムは、ステップ６００において構成されていることもある。例えば、システムのユーザ１８またはオペレータは、提示されるべき仮想コンテンツと、どこに仮想コンテンツが提示されるべきかとを指定することができる。ユーザが、コンテンツ生成ソフトウェアエンジン４５８を用いて仮想コンテンツを生成している場合、複数の仮想ツールを含む仮想ツールのケースが、開かれ、また表示されることもある。
【００６０】
[0071]  ステップ６０４において、処理ユニット４は、シーンからデータを収集する。これは、ヘッドマウントディスプレイデバイス２により、またとりわけ、部屋に面したカメラ１１２とＩＭＵ１３２とにより、検知されるデータとすることができる。これはまた、カメラアセンブリ５０により、またとりわけ、カメラ５０と、位置センサ５４と、イメージセンサ５６とにより、検知される画像と慣性データとを含むこともできる。
【００６１】
[0072]  以下で説明されるように、１つまたは複数のヘッドマウントディスプレイデバイス２と、１つまたは複数のカメラアセンブリ５０の位置は、シーンマップの内部で互いにキャリブレーションされることもある。しかしながら、１つまたは複数のカメラアセンブリ５０のカメラ５２とイメージセンサ５６と、１つまたは複数のヘッドマウントディスプレイデバイス２の部屋に面したカメラ１１２との中で受信される画像データが、異なるレートで受信されることが、起こる可能性がある。したがって、カメラアセンブリと、ヘッドマウントディスプレイデバイスとが、シーンマップに対してキャリブレーションされる可能性がある前に、本技術の実施形態は、ステップ６０６において、変数としての時間を取り除くために、異なるカメラアセンブリの画像取り込みデバイスと、ヘッドマウントディスプレイデバイスとから受信される画像データを時間的に同期させる。このようにして、キャリブレーションエンジン４８２は、同時に取り込まれる、異なる画像取り込みデバイスからの画像データについての分析を実行することができる。以下の説明においては、カメラ５２、イメージセンサ５６、および／または部屋に面したカメラ１１２は、一括して、画像取り込みデバイスと称される。
【００６２】
[0073]  同期化ステップ６０６は、同期化エンジン４８０によって実行される。ステップ６０６に関連したさらなる詳細は、次に、図１０のフローチャートを参照して説明される。以下の説明は、異なる画像取り込みデバイスの深さカメラと、ＲＧＢカメラとから受信されるデータの同期化に対して適用されることもある。したがって、１つまたは複数のヘッドマウントディスプレイデバイス２と、１つまたは複数のカメラアセンブリ５０とのすべての画像取り込みデバイスは、一緒に同期化されることもある。
【００６３】
[0074]  各画像取り込みデバイスの内部で、シーン情報のフレームは、ステップ７２０において、深さカメラと、ＲＧＢカメラとによって取り込まれる。ステップ７２４において、各取り込みデバイスについての深さデータとＲＧＢフレームデータとは、処理ユニット４および／またはコンピューティングシステム７０に送信される。ステップ７２６において、着信する深さ／ＲＧＢデータは、処理ユニット４またはコンピューティングシステム７０のいずれかにおいて、単一マスタクロックでタイムスタンプを押される。
【００６４】
[0075]  スタンプ７３０において、同期化エンジン４８０は、与えられたフレーム番号についてのデバイス２とアセンブリ５０とのすべてから受信されるフレームデータを調べる。与えられたフレームについてのそのようなデータについてのタイムスタンプ、ならびにカメラのそれぞれについての知られている解像度を使用して、同期化エンジンは、データを生成する各デバイス／アセンブリからの深さデータおよびＲＧＢデータについての必要とされる時間オフセットを決定する。これから、同期化エンジンは、各画像取り込みデバイスのタイミングにおいて必要とされる調整を決定することができる。同期化エンジンは、単一デバイス（例えば、そのフレームについての第１のデータを生成したデバイス）のフレームデータからのタイムスタンプを基準として選択し、またそのタイムスタンプを基準タイムスタンプとして設定することができる。次いで、すべての他のデバイスについてのフレームデータは、その基準タイムスタンプに合わせて調整されることもある。代わりに、同期化エンジンは、内部クロック基準を生成し、その内部クロック基準に対するすべてのフレームデータについての調整を設定することができる。
【００６５】
[0076]  ひとたび各デバイスについての調整が、ステップ７３０において決定された後に、同期化エンジンは、ステップ７３４において、そのデバイスがそのフレームデータを生成するレートを調整するコマンドを各デバイス２／アセンブリ５０に送信することができる。フレームデータの生成を調整するために使用され得る様々なメカニズムが存在している。一実施形態においては、同期化エンジンは、フレームデータを生成する取り込みデバイスについてのブランキング間隔に追加し、またはそのブランキング間隔から差し引くことができ、その結果、すべての取り込みデバイスからのすべてのフレームデータが、同時に生成され、送信される。同期化エンジン４８０が、１つのデバイスまたはアセンブリからのフレームがより早くやってくるようにさせ、例えば、バッファアンダーフローを回避する必要がある場合に、同期化エンジン４８０は、そのデバイスについてのブランキング間隔を低減させるコマンドをデバイス／アセンブリに送信することができる。同期化エンジン４８０が、デバイスまたはアセンブリについてのフレームデータが、後で生成されるようにさせ、例えば、バッファオーバーフローを回避する必要がある場合に、同期化エンジン４８０は、そのデバイス／アセンブリについての垂直ブランキング間隔を増大させることができる。
【００６６】
[0077]  ステップ６０６における同期化エンジン４８０のオペレーションに関連したさらなる詳細は、２０１０年５月３日に出願された「Ｈｅｔｅｒｏｇｅｎｅｏｕｓ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ」という名称の出願者の同時係属の米国特許出願第１２／７７２，８０２号の中に開示されている。本明細書における開示を仮定すると、当業者なら、ヘッドマウントディスプレイデバイス２の異なる取り込みデバイスと、カメラアセンブリ５０とをキャリブレーションプロセスのために一緒に同期させるために使用され得る様々な他のオペレーションを正しく理解するであろう。
【００６７】
[0078]  さらなる実施形態においては、同期化ステップが、初期キャリブレーションプロセスから省略させられ得ることが、考えられる。そのような実施形態は、運動ベクトルを使用して、取り込みポイント以外の時に、取り込まれた画像データポイントのロケーションを予測することができる。計算的に困難であり、また処理集約的であるが、そのような実施形態は、可能である。
【００６８】
[0079]  次に、図９に戻ると、ひとたび画像データフレームが、ステップ６０６においてデータの移動するシーンについて同期させられた後に、取り込みデバイスは、ステップ６０８において、互いに、またシーンに対してキャリブレーションされることもある。以下の説明においては、ｚ−軸は、カメラレンズからそのまま伸びるように規定され、またｘ−軸と、ｙ−軸とは、それぞれ、ｚ−軸からの水平オフセットと垂直オフセットとである。ｘ軸と、ｙ軸と、ｚ軸とのこの定義は、例としてにすぎず、またそれらの軸は、さらなる実施形態においては、異なるように方向付けられることもある。各取り込みデバイスは、他の取り込みデバイスの空間とは異なるｘ、ｙ、ｚデカルト空間を有することができる。以下で説明されるように、ひとたびすべての取り込みデバイスが、キャリブレーションされた後に、画像取り込みデバイスのすべてを含む単一の３Ｄ現実世界デカルト座標系が、規定されることもある。
【００６９】
[0080]  実施形態においては、キャリブレーションオペレーションは、異なる取り込みデバイスからの深さ情報と、ＲＧＢ情報との両方を使用して、キャリブレーションエンジン４８２によって実行される。深さカメラは、画像の中のポイントのｘ位置と、ｙ位置と、ｚ位置とについての情報を提供するが、低い解像度を有する可能性がある。ＲＧＢカメラは、ｚ方向における深さ情報を提供することはないが、一般的に、１つの取り込みデバイスのビューを別のものに相互に関連づけるために使用される不連続性またはキューを識別するための高い解像度と、テクスチャとを有している。それに応じて、本技術の実施形態は、キャリブレーションプロセスのために取り込みデバイスからの深さカメラと、ＲＧＢカメラとの両方を使用することができる。
【００７０】
[0081]  しかしながら、より計算集約的であり、またシーンの中のオブジェクトに依存しているが、取り込みデバイスを互いに、また２つ以上の取り込みデバイスからの深さ情報だけを使用したシーンに対してキャリブレーションすることが、可能なこともある。同様に、依然としてより計算集約的であり、またシーンの中のオブジェクトに依存しているが、２つ以上の取り込みデバイスからのＲＧＢ情報だけを使用して、互いにデバイスをキャリブレーションすることが、可能であることもある。ＲＧＢ情報だけを使用してカメラビューをキャリブレーションするための技術は、例えば、２００７年５月１７日に公開された、「Ｎａｖｉｇａｔｉｎｇ  Ｉｍａｇｅｓ  Ｕｓｉｎｇ  Ｉｍａｇｅ  Ｂａｓｅｄ  Ｇｅｏｍｅｔｒｉｃ  Ａｌｉｇｎｍｅｎｔ  ａｎｄ  Ｏｂｊｅｃｔ  Ｂａｓｅｄ  Ｃｏｎｔｒｏｌｓ」という名称の米国特許公開第２００７／０１１０３３８号の中に説明されており、この公開は、マイクロソフト社のＰｈｏｔｏｓｙｎｔｈ（登録商標）画像認識ソフトウェアの技術の中で使用される。
【００７１】
[0082]  深さデータと、ＲＧＢデータとを使用したキャリブレーションエンジン４８２による、画像取り込みデバイスのキャリブレーションの一実施形態に関連したさらなる詳細は、次に、図１１のフローチャートを参照して説明される。ステップ７４０において、異なる画像取り込みデバイスは、シーンからの深さデータと、ＲＧＢ画像データとを取り込む。ステップ７４２において、異なる取り込みデバイスについて、深さカメラとＲＧＢカメラそれぞれのカメラビューは、カメラ中心のビューから生成するカメラに特有の直交３Ｄ世界ビューへと変換される。いくつかの深さカメラは、基準の垂直フレームを使用して、取り込まれたデータを測定する。すなわち、カメラは、カメラからさらに離れているオブジェクトについて増大するｚ−方向の中で平面を定義する。ｘ次元と、ｙ次元とは、ｚ−軸からの水平分散と、垂直分散とを表す。他の深さカメラは、基準の放射状フレームを使用して、取り込まれたデータを測定する。すなわち、カメラは、カメラにおける第１のポイント（ｘ１，ｙ１，ｚ１）と、オブジェクトにおける第２のポイント（ｘ２，ｙ２，ｚ２）とを有するベクトルを測定する。
【００７２】
[0083]  どのようにしてカメラが、その画像データポイントを測定するかにかかわらず、理想的には、測定における任意の２つの隣接する座標の間の距離は、同じである。しかしながら、カメラレンズひずみに起因して、これは、当てはまらない可能性もあるであろう。それに応じて、ステップ７４２において、キャリブレーションエンジン４８２は、次に、デバイス２と、アセンブリ５０との中の画像取り込みデバイスの中の深さカメラと、ＲＧＢカメラとの両方についてのカメラひずみを補正することができる。与えられたカメラ（深さまたはＲＧＢ）のひずみは、カメラ製造業者によって提供される、知られている特性とすることができる。そうでない場合には、例えば、カメラの視野の内部の異なるロケーションにおけるチェッカーボードパターンなど、知られている次元のオブジェクトを撮像することを含めて、カメラのひずみを算出するためのアルゴリズムが、知られている。その画像の中のポイントのカメラビュー座標における偏差は、カメラレンズひずみの結果になるであろう。ひとたびレンズひずみの程度が知られた後に、ひずみは、与えられた取り込みデバイスについてのポイントクラウドの中のポイントの一様なカメラビューマップをもたらす、知られている逆行列変換によって補正されることもある。
【００７３】
[0084]  キャリブレーションエンジン４８２は、次に、ステップ７４６において、カメラビューから、直交３Ｄ世界ビューへと取り込みデバイスによって取り込まれるひずみ補正された画像データポイントを変換することができる。この直交３Ｄ世界ビューは、取り込みデバイスに関して直交ｘ、ｙ、ｚデカルト座標系における画像取り込みデバイスによって取り込まれるすべてのデータのポイントクラウドマップである（例えば、取り込みデバイスは、３Ｄ世界ビューの中の（０、０、０）にあるようにすることができる）。直交３Ｄ世界ビューに対してカメラビューを変換するための行列変換式は、知られている。例えば、Ｄａｖｉｄ  Ｈ．  Ｅｂｅｒｌｙ、「３ｄ  Ｇａｍｅ  Ｅｎｇｉｎｅ  Ｄｅｓｉｇｎ：Ａ  Ｐｒａｃｔｉｃａｌ  Ａｐｐｒｏａｃｈ  Ｔｏ  Ｒｅａｌ−Ｔｉｍｅ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ」、Ｍｏｒｇａｎ  Ｋａｕｆｍａｎ  Ｐｕｂｌｉｓｈｅｒｓ（２０００）を見て欲しい。
【００７４】
[0085]  取り込みデバイス深さカメラからのデータは、ステップ７４６において直交３Ｄ世界ビューを構築するために十分である可能性がある。しかしながら、取り込みデバイスＲＧＢカメラからのデータが、ステップ７４６において３Ｄ世界ビューを構築する際に使用される可能性もある。ＲＧＢカメラは、データポイントの２Ｄマップに戻り、そのようにしてＲＧＢデータだけから３Ｄ世界マップを導き出すことは、計算的に、より難しい。しかしながら、シーンの中のオブジェクトに応じて、ＲＧＢデータから３Ｄ世界マップを構築することは、可能であることもある。例えば、以前に述べられた米国特許公開第２００７／０１１０３３８号を見て欲しい。
【００７５】
[0086]  ヘッドマウントデバイス２と、カメラアセンブリ５０との中の各画像取り込みデバイスは、ステップ７４６において、直交３Ｄ世界ビューを構築することができる。与えられた取り込みデバイスからのデータポイントのｘ、ｙ、ｚ世界座標は、依然として、ステップ７４６の結論におけるその取り込みデバイスの視点からのものであり、またデバイス２とカメラアセンブリ５０との中の他の取り込みデバイスからのデータポイントのｘ、ｙ、ｚ世界座標にまだ相関づけられていない。さらなる実施形態においては、カメラレンズひずみについて補正するステップは、カメラビューを直交３Ｄ世界ビューに変換するステップ７４６の後に実行されることもある。
【００７６】
[0087]  次のステップは、異なる画像取り込みデバイスの様々な直交３Ｄ世界ビューをヘッドマウントディスプレイデバイス２とカメラアセンブリ５０とにおいて、すべての画像取り込みデバイスによって共用される単一の全体の３Ｄ世界ビューへと変換することである。これを遂行するために、キャリブレーションエンジン４８２の実施形態は、次にステップ７４８で、それぞれの取り込みデバイスの世界ビューのポイントクラウドにおけるキーポイントの不連続性またはキューを調べ、次いで、ステップ７５０において、異なる取り込みデバイスの異なるポイントクラウドの間で同じであるキューを識別する。
【００７７】
[0088]  ひとたびキャリブレーションエンジン４８２が、２つの異なる取り込みデバイスの２つの世界ビューが同じキャリブレーションキューを含むことを決定することができた後に、エンジン４８２は、ステップ７５２において、互いに関する、またキューに関する２つの取り込みデバイスについての位置と、方向付けと、焦点距離とを決定することができる。実施形態においては、１つまたは複数のデバイス２および／またはカメラアセンブリ５０の中の必ずしもすべての画像取り込みデバイスが、同じ共通キューを共用することになるとは限らない。しかしながら、第１の取り込みデバイスと、第２の取り込みデバイスとが、キューを共用しており、また第２の取り込みデバイスと、第３の取り込みデバイスとが、キューを共用している限り、キャリブレーションエンジンは、互いに、また単一の全体の３Ｄ世界ビューに、第１の取り込みデバイスと、第２の取り込みデバイスと、第３の取り込みデバイスとについての位置と、方向付けと、焦点距離とを決定することができる。同じことが、さらなる取り込みデバイスについても、当てはまる。
【００７８】
[0089]  このプロセスにおける第１のステップ７４８は、各取り込みデバイスについての３Ｄ現実世界ビューポイントクラウドの中でキューを識別することである。キューは、隣接するポイントと不連続であるデータポイントとすることができ、またそれゆえに、異なる取り込みデバイスからのポイントクラウドの間で簡単に識別される。理想的には、いくつかのそのようなキューは、各ポイントクラウドの内部で識別され、また場合によっては、ポイントクラウドの内部のオブジェクトのエッジおよび／またはコーナーを規定することができる。画像ポイントクラウドの内部の他のオブジェクトの態様は、同様にキューとすることができる。様々な知られているアルゴリズムは、画像ポイントクラウドからキューを識別するために存在する。そのようなアルゴリズムは、例えば、Ｋ．  Ｍｉｋｏｌａｊｃｚｙｋ、Ｃ．  Ｓｃｈｍｉｄ、「Ａ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｅｖａｌｕａｔｉｏｎ  Ｏｆ  Ｌｏｃａｌ  Ｄｅｓｃｒｉｐｔｏｒｓ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ＆  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ、２７、１０、１６１５〜１６３０頁（２００５年）の中で説明される。画像データを有するキューを検出するさらなる一方法は、スケール不変特徴変換（SIFT: Scale-Invariant Feature Transform）アルゴリズムである。ＳＩＦＴアルゴリズムは、例えば、Ｄａｖｉｄ  Ｇ．Ｌｏｗｅによる２００４年３月２３日に発行された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｉｄｅｎｔｉｆｙｉｎｇ  Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅｓ  ｉｎ  ａｎ  Ｉｍａｇｅ  ａｎｄ  Ｕｓｅ  ｏｆ  Ｓａｍｅ  ｆｏｒ  Ｌｏｃａｔｉｎｇ  ａｎ  Ｏｂｊｅｃｔ  ｉｎ  ａｎ  Ｉｍａｇｅ」という名称の米国特許第６，７１１，２９３号の中で説明される。別のキュー検出器方法は、最大限に安定した極値領域（MSER: Maximally Stable Extremal Regions）アルゴリズムである。ＭＳＥＲアルゴリズムは、例えば、Ｊ．  Ｍａｔａｓ、Ｏ．  Ｃｈｕｍ、Ｍ．  Ｕｒｂａ、およびＴ．  Ｐａｊｄｌａによる論文、「Ｒｏｂｕｓｔ  Ｗｉｄｅ  Ｂａｓｅｌｉｎｅ  Ｓｔｅｒｅｏ  Ｆｒｏｍ  Ｍａｘｉｍａｌｌｙ  Ｓｔａｂｌｅ  Ｅｘｔｅｒｎａｌ  Ｒｅｇｉｏｎｓ」、Ｐｒｏｃ．  ｏｆ  Ｂｒｉｔｉｓｈ  Ｍａｃｈｉｎｅ  Ｖｉｓｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ、３８４〜３９６頁（２００２年）の中で説明される。
【００７９】
[0090]  ステップ７５０において、２つ以上の取り込みデバイスからのポイントクラウドの間で共用されるキューが、識別される。概念的には、第１の組のベクトルが、第１の取り込みデバイスのデカルト座標系の中の、第１の取り込みデバイスと、１組のキューとの間に存在しており、また第２の組のベクトルが、第２の取り込みデバイスのデカルト座標系の中の、第２の取り込みデバイスと、その同じ組のキューとの間に存在している場合に、２つの座標系は、互いに対して、両方の取り込みデバイスを含む単一のデカルト座標系へと解決され得る（resolve）。いくつかの知られている技法が、２つ以上の取り込みデバイスからのポイントクラウド間で共用されたキューを見出すために存在している。そのような技法は、例えば、Ｓ．  Ａｒｙａ、Ｄ．Ｍ．  Ｍｏｕｎｔ、Ｎ．Ｓ．  Ｎｅｔａｎｙａｈｕ、Ｒ．  Ｓｉｌｖｅｒｍａｎ、およびＡ．Ｙ．  Ｗｕ、「Ａｎ  Ｏｐｔｉｍａｌ  Ａｌｇｏｒｉｔｈｍ  Ｆｏｒ  Ａｐｐｒｏｘｉｍａｔｅ  Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒ  Ｓｅａｒｃｈｉｎｇ  Ｆｉｘｅｄ  Ｄｉｍｅｎｓｉｏｎｓ」、Ｊｏｕｒｎａｌ  ｏｆ  ｔｈｅ  ＡＣＭ  ４５、６、８９１〜９２３頁（１９９８年）の中で示される。他の技法が、それだけには限定されないが、ハッシングまたはコンテキスト依存のハッシングを含めて、上記で述べられるＡｒｙａ他の近似的な最も近い隣接ソリューションの代わりに、またはそれに追加して、使用される可能性がある。
【００８０】
[0091]  ２つの異なる取り込みデバイスからのポイントクラウドが、十分に多数のマッチしたキューを共用する場合に、２つのポイントクラウドを一緒に相互に関連づける行列は、例えば、ランダムサンプリングコンセンサス（RANSAC: Random Sampling Consensus）、または様々な他の推定技法によって推定されることもある。次いで、回復された基本的な行列に対する異常値であるマッチは、取り除かれることもある。１対のポイントクラウドの間の１組の仮定された幾何学的に一貫したマッチを見出した後に、マッチは、それぞれのポイントクラウドについての１組のトラックへと組織化されることもあり、ここで、トラックは、ポイントクラウドの間の１組の相互にマッチしたキューである。その組の中の第１のトラックは、第１のポイントクラウドの中の各共通キューの投影を含むことができる。組の中の第２のトラックは、第２のポイントクラウドの中の各共通キューの投影を含むことができる。
【００８１】
[0092]  それぞれのポイントクラウドの中のキューが、グラフの頂点の組を形成し、またマッチしたキューの各対の間のグラフの中に、エッジが存在している場合、そのときにはこのグラフのあらゆる接続されたコンポーネントは、トラックを含んでいる。しかしながら、いくつかの接続されたコンポーネントに関連するトラックは、一貫していない可能性があり、とりわけ、トラックは、それが同じ画像についての複数のキューを含む場合に、一貫していない。実施形態においては、少なくとも２つのキューを含んでいる一貫したトラックだけが、以下で説明される相対的な取り込みデバイスの位置を決定するステップ７５２のために、保持される。
【００８２】
[0093]  ステップ７４８および７５０からの情報を使用して、異なる取り込みデバイスからのポイントクラウドは、単一の直交３Ｄ現実世界ビュー内の単一のポイントクラウドへと解決され得る。すべての取り込みデバイスの位置と方向付けとは、この単一のポイントクラウドと、単一の直交３Ｄ現実世界ビューとに関してキャリブレーションされる。様々なポイントクラウドを一緒に解決するために、２つのポイントクラウドについてのトラックの組の中のキューの投影は、分析される。これらの投影から、キャリブレーションエンジン４８２は、キューに関する第１の取り込みデバイスの視点を決定することができ、またキューに関する第２の取り込みデバイスの視点を決定することもできる。それから、キャリブレーションエンジン４８２は、単一のポイントクラウドの最良の推定値、および両方のポイントクラウドからのキューと他のデータポイントとを含む単一の直交３Ｄ現実世界ビューへとポイントクラウドを解決することができる。
【００８３】
[0094]  このプロセスは、単一の直交３Ｄ現実世界ビューが、すべての画像取り込みデバイスを含むまで、任意の他の取り込みデバイスについて反復される。ひとたびこれが行われた後に、キャリブレーションエンジンは、単一の直交３Ｄ現実世界ビューに対する、また互いに対する、取り込みデバイスの相対的な位置および方向付けを決定することができる。キャリブレーションエンジンは、さらに、単一の直交３Ｄ現実世界ビューに関して各取り込みデバイスの焦点距離を決定することができる。
【００８４】
[0095]  取り込みデバイスについてのポーズと、レンズ視野と、ひずみパラメータとを決定するキャリブレーションプロセスの一例として、２つ以上の取り込みデバイス（複数のカメラアセンブリあるいは１つまたは複数のカメラアセンブリ、およびヘッドマウントディスプレイデバイス）は、キャリブレーションキューの１つまたは複数の画像を取り込むことができる。このキャリブレーションキューは、複数の異なる方向付けから取り込まれることもある。取り込まれた画像は、各画像取り込みデバイスの位置／方向付けおよびレンズの特性を決定するために、上記で説明されるように、処理される。
【００８５】
[0096]  キャリブレーションステップの完了のすぐ後に、様々なヘッドマウントディスプレイデバイスおよび／またはカメラアセンブリの位置と方向付けとは、知られていることもある。ヘッドマウントディスプレイデバイスのＩＭＵ１３２からの、またカメラアセンブリ５０の位置センサ５４からのＩＭＵデータを使用して、１つまたは複数のヘッドマウントディスプレイデバイス２とカメラアセンブリ５０との位置および方向付けを洗練し、かつ／または確認することができる。
【００８６】
[0097]  キャリブレーションエンジン４８２によって実行され、また図９ないし１１に関して、上記で説明されるキャリブレーションステップは、１つまたは複数のヘッドマウントディスプレイデバイス２とカメラアセンブリ５０との初期使用のすぐ後に一度実行されることもある。シーンの内部のユーザと、オブジェクトとは、変化することができ、またこのようにしてそれぞれの取り込みデバイスによって生成されるポイントクラウドは、変化することができるが、互いに関するカメラのキャリブレーションは、同じままである可能性がある。カメラアセンブリが移動される場合に、キャリブレーションステップは、反復されることもある。実施形態においては、キャリブレーションエンジンは、様々な取り込みデバイスのポイントクラウドからのキューに関するデータを収集し続けることができ、またキャリブレーションエンジンが、２つ以上の取り込みデバイスからのよりよいキューを識別する場合には、キャリブレーションエンジンは、取り込みデバイスのキャリブレーションを改善する試みの中で、上記のステップを反復することができる。
【００８７】
[0098]  シーンマップは、シーンの形状、ならびに形状、デバイス２とカメラアセンブリ５０との位置、およびシーンの内部のオブジェクトの位置を識別するステップ６１０の中で作成されることもある。実施形態においては、与えられたフレームの中で生成されるシーンマップは、ユーザの手（単数または複数）のｘ位置、ｙ位置、およびｚ位置と、シーンの中の他の現実世界オブジェクトおよび仮想オブジェクトとを含むことができる。深さデータと位置データとを収集するための方法は、上記で説明されてきている。
【００８８】
[0099]  ステップ６１２において、システムは、上記で説明されるように、ユーザの骨格、および／または手を検出し、追跡し、また移動する身体の部分と、他の移動するオブジェクトとの位置に基づいて、シーンマップをアップデートすることができる。ステップ６１４においては、処理ユニット４は、シーンの内部のヘッドマウントディスプレイデバイス２のｘ位置、ｙ位置、およびｚ位置と、方向付けと、ＦＯＶとを決定する。ステップ６１４のさらなる詳細は、次に、図１２のフローチャートに関して説明される。
【００８９】
[00100]  ステップ７６０において、シーンについての画像データは、ユーザの頭部位置と、ユーザの顔からまっすぐに外を見ている顔単位ベクトルとの両方を決定するために、処理ユニット４によって分析される。頭部位置は、ヘッドマウントディスプレイデバイス２からのフィードバックから識別されることもあり、またこれから、顔単位ベクトルは、構築されることもある。顔単位ベクトルを使用して、ユーザの頭部方向付けを規定することができ、また例においては、ユーザについてのＦＯＶの中心と考えられることもある。顔単位ベクトルはさらに、または代わりに、ヘッドマウントディスプレイデバイス２の上で部屋に面したカメラ１１２から戻されるカメラ画像データから識別されることもある。とりわけ、ヘッドマウントディスプレイデバイス２の上のカメラ１１２が何を見るかに基づいて、処理ユニット４は、ユーザの頭部方向付けを表す顔単位ベクトルを決定することができる。
【００９０】
[00101]  ステップ７６４において、ユーザの頭部の位置および方向付けは、さらに、または代わりに、より早い時間から（フレームの中で早期に、または先行するフレームからのいずれかで）ユーザの頭部の位置および方向付けについての分析から決定されることもあり、また次いでＩＭＵ１３２からの慣性情報を使用して、ユーザの頭部の位置および方向付けをアップデートしている。ＩＭＵ１３２からの情報は、ユーザの頭部についての正確な運動学的データを提供することができるが、ＩＭＵは、一般的に、ユーザの頭部に関する絶対的な位置情報を提供することはない。この絶対的な位置情報、またはグラウンドトゥルースは、ヘッドマウントディスプレイデバイス２の上のカメラから取得される画像データから提供されることもある。
【００９１】
[00102]  実施形態においては、ユーザの頭部の位置および方向付けは、相前後して動作するステップ７６０と７６４とによって決定されることもある。さらなる実施形態においては、ステップ７６９と７６４とのうちの一方またはもう一方を使用して、ユーザの頭部についての頭部の位置および方向付けを決定することができる。
【００９２】
[00103]  ユーザがまっすぐに前を見ていないことが、起こる可能性がある。したがって、ユーザの頭部の位置および方向付けを識別することに加えて、処理ユニットは、さらに、ユーザの頭部の中のユーザの目の位置を考慮することができる。この情報は、上記で説明されるアイトラッキングアセンブリによって提供されることもある。アイトラッキングアセンブリは、ユーザの目の位置を識別することができ、このユーザの目の位置は、ユーザの目が集中され、またまっすぐ前を見ている（すなわち、顔単位ベクトル）位置からの左方偏差、右方偏差、上方偏差、および／または下方偏差を示している目単位ベクトルとして表される可能性がある。顔単位ベクトルは、目単位ベクトルに合わせて調整されて、ユーザがどこを見ているかを規定することができる。
【００９３】
[00104]  ステップ７７０において、ユーザのＦＯＶは、次に、決定される可能性がある。ヘッドマウントディスプレイデバイス２のユーザのビューの範囲は、仮説的ユーザの上方周辺ビジョンと、下方周辺ビジョンと、左方周辺ビジョンと、右方周辺ビジョンとに基づいて、あらかじめ規定されることもある。与えられたユーザについて算出されたＦＯＶが、特定のユーザが、ＦＯＶの範囲において見ることができる可能性があるオブジェクトを含むことを保証するために、この仮説的ユーザは、最大の可能な周辺ビジョンを有するものと解釈されることもある。何らかの所定の余分なＦＯＶが、これに追加されて、十分なデータが、実施形態における与えられたユーザのために取り込まれることを保証することができる。
【００９４】
[00105]  与えられた瞬間におけるユーザについてのＦＯＶは、次いで、目単位ベクトルの任意の偏差によって調整される、顔単位ベクトルの周囲に、視界を取ること、およびそれを集中させることにより、算出されることもある。与えられた瞬間に、何をユーザが見ているかを規定することに加えて、ユーザのＦＯＶについてのこの決定はまた、何がユーザにとって目に見えない可能性があるかを決定するために、有用であることもある。以下で説明されるように、特定のユーザのＦＯＶの内部にあるこれらのエリアに仮想オブジェクトの処理を限定することは、処理速度を改善させることができ、またレイテンシを低減させる。
【００９５】
[00106]  図９をもう一度参照すると、ステップ６２０において、１つまたは複数のカメラアセンブリ５０の錐台視野が、決定される可能性がある。この決定は、ステップ７６４および７７０に関して、上記で説明されるものと同じやり方、または類似したやり方で行われることもある。
【００９６】
[00107]  本技術の態様に従って、ヘッドマウントディスプレイデバイス２またはカメラアセンブリ５０のうちのどれかの視点からの、複合現実シーンの仮想オブジェクトおよび実オブジェクトのビューが、１つまたは複数のモニタ６０の上に表示される可能性がある。ステップ６２４において、処理ユニット４および／またはコンピューティングシステム７０は、ヘッドマウントディスプレイデバイス２またはカメラアセンブリ５０のユーザまたはオペレータからの選択を受信することができる。その後に、仮想オブジェクトをレンダリングし、また表示するためのステップ６３０〜６５８は、選択されたヘッドマウントディスプレイデバイス２またはカメラアセンブリ５０の視点を使用する。以下のステップ６３０〜６５８は、１つまたは複数のモニタ６０の上に画像を表示することに関する。しかしながら、ステップ６３０〜６５８の類似した組はまた、ヘッドマウントディスプレイデバイス２の視点から、ヘッドマウントディスプレイデバイス２に画像を表示するために並列に実行される可能性もある。
【００９７】
[00108]  ステップ６３０において、処理ユニット４は、レンダリングオペレーションを選択することができ、その結果、選択されたカメラアセンブリまたはヘッドマウントディスプレイデバイスの最終的な錐台視野の内部に現れる可能性があるこれらの仮想オブジェクトだけが、レンダリングされる。他の仮想オブジェクトの位置が、依然として追跡される可能性もあるが、それらは、レンダリングされない。さらなる実施形態においては、ステップ６３０が、一緒にスキップされる可能性があり、全体の画像がレンダリングされることもまた考えられる。
【００９８】
[00109]  処理ユニット４および／またはコンピューティングシステム７０は、次に、レンダリングセットアップステップ６３８を実行することができ、ここでセットアップレンダリングオペレーションは、ステップ６１０、６１４および６２０において受信されるシーンマップとＦＯＶとを使用して実行される。ひとたび仮想オブジェクトデータが受信された後に、処理ユニットは、モニタ６０の上でレンダリングされるべきである仮想オブジェクトについてのステップ６３８において、レンダリングセットアップオペレーションを実行することができる。ステップ６３８におけるセットアップレンダリングオペレーションは、表示される仮想オブジェクト（単数または複数）に関連する共通のレンダリングタスクを含むことができる。これらのレンダリングタスクは、例えば、シャドウマップ生成と、照明と、アニメーションとを含むことができる。実施形態においては、レンダリングセットアップステップ６３８は、仮想オブジェクトが、予測された最終的なＦＯＶの中に表示される頂点バッファ、テクスチャ、状態など、ありそうな描画情報についてのコンパイルをさらに含むことができる。
【００９９】
[00110]  ３Ｄシーンマップの中のオブジェクトのロケーションに関する情報を使用して、処理ユニット４／コンピューティングシステム７０は、次に、ステップ６４４において選択されたデバイス２／アセンブリ５０のビューからのオクルージョンと、シェーディングとを決定することができる。とりわけ、シーンマップは、どのようにも移動する仮想オブジェクトまたは実オブジェクトと、移動していない仮想オブジェクトまたは実オブジェクトとを含めて、シーンの中にオブジェクトのｘ位置と、ｙ位置と、ｚ位置とを有する。ＦＯＶの中の選択されたビューのロケーションと、オブジェクトに対するその視線とを知って、処理ユニット４および／またはコンピューティングシステム７０は、次いで、仮想オブジェクトが、現実世界オブジェクトのビューを部分的に閉塞するか、または完全に閉塞するかを決定することができる。さらに、処理ユニット４および／またはコンピューティングシステム７０は、現実世界オブジェクトが、仮想オブジェクトのビューを部分的に閉塞するか、または完全に閉塞するかを決定することができる。
【０１００】
[00111]  ステップ６４６において、処理ユニット４のＧＰＵ３２２（またはコンピューティングシステム７０の中のＧＰＵ）は、次に、モニタ６０の上に表示される画像をレンダリングすることができる。レンダリングオペレーションの部分は、すでに、レンダリングセットアップステップ６３８において実行されてきており、また定期的にアップデートされてきている可能性がある。どのようなオクルージョンが引き起こされた仮想オブジェクトもレンダリングされないこともあり、またはそれらは、レンダリングされることもある。レンダリングされる場合に、オクルージョンが引き起こされたオブジェクトは、上記で説明されるように、不透明フィルタ１１４により、表示から除外されることになる。
【０１０１】
[00112]  ステップ６５０において、処理ユニット４および／またはコンピューティングシステム７０は、モニタ６０にレンダリングされた画像を送信する時間であるかどうか、あるいはヘッドマウントディスプレイデバイス２および／またはカメラアセンブリ５０からのもっと最近の位置フィードバックデータを使用して、画像のさらなる洗練のための時間が依然として存在するかどうかをチェックする。６０ヘルツのフレームリフレッシュレートを使用したシステムにおいては、単一フレームは、約１６ｍｓである。
【０１０２】
[00113]  アップデートされた画像を表示する時間である場合、選択されたカメラアセンブリ５０またはヘッドマウントデバイス２からの画像は、モニタ６０に送信される。例えば、カメラアセンブリ５０が選択される場合には、カメラ５２によって取り込まれる現実世界画像は、表示のためにモニタ６０に送信される。ヘッドマウントディスプレイが、選択される場合に、部屋に面したカメラ１１２のＲＧＢカメラによって取り込まれる現実世界画像は、表示のためにモニタに送信される。さらに、決定された錐台視野の中のどのような仮想オブジェクトもまた、モニタ６０に送信されて、適切なピクセルにおいて表示され、視点とオクルージョンとを明らかにする。このときに、不透明フィルタについての制御データがまた、処理ユニット４および／またはコンピューティングシステム７０からモニタ６０へと送信されて、不透明フィルタ設定を適用する。モニタ６０は、次いで、ステップ６５８において、実オブジェクトと、仮想オブジェクトとの融合された画像を表示することができる。
【０１０３】
[00114]  上記で説明される実施形態においては、カメラアセンブリ５０からの深さデータおよび他の画像データを使用して、カメラアセンブリのビューにおけるオクルージョンを決定する。処理ユニット４と、ヘッドマウントディスプレイデバイス２とによって確立されるシーンマップからのデータは、シーンマップの中のオブジェクトの表面メッシを決定する際に、使用される可能性もある。このデータと表面メッシュとは、カメラアセンブリのビューにおいて、オクルージョンを決定するときに、使用される可能性もある。
【０１０４】
[00115]  ユーザ１８が、選択されたカメラアセンブリ５０の視点から仮想オブジェクトのビューをブロックしている可能性がある。実施形態においては、カメラアセンブリ５０からの深さデータおよび他の画像データ、および／または処理ユニット４とヘッドマウントディスプレイデバイス２とからのシーンマップを使用して、ユーザ１８が、選択されたカメラアセンブリ５０の視点から、仮想オブジェクトの一部分またはすべてをブロックしていることに起因した、仮想オブジェクトのオクルージョンを決定することができる。
【０１０５】
[00116]  さらなる実施形態においては、カメラアセンブリ５０からの深さデータもしくは画像データ、またはシーンマップを使用する代わりに、ユーザ１８の知られているロケーションを使用して、選択されたカメラアセンブリ５０の視点からのオクルージョンを決定することができる。例えば、ユーザ１８によって着用されるヘッドマウントディスプレイデバイス２の位置は、知られている。ユーザ１８の位置は、代わりに、または追加して、骨格トラッキングアルゴリズムによって、検出されることがある。その後に、ユーザ１８のサイズと形状とを近似する幾何学的形状は、選択されたカメラアセンブリ５０の視点からユーザによる仮想コンテンツのオクルージョンを決定する目的で構築され、また使用されることがある。
【０１０６】
[00117]  他方では、ステップ６５０において表示される画像データのフレームを送信する時間ではまだない場合に、処理ユニットおよび／またはコンピューティングシステム７０は、より最近のセンサデータが、最終的なビューの予測と、ビューの中のオブジェクトの最終的な位置とを改良するために、ループバックすることができる。とりわけ、ステップ６５０において、依然として時間がある場合に、処理ユニット４および／またはコンピューティングシステム７０は、ステップ６０４に戻って、ヘッドマウントディスプレイデバイス２とカメラアセンブリ５０とからより多くの最近のセンサデータを獲得することができる。
【０１０７】
[00118]  処理ステップ６００ないし６５８は、例としてのみ上記で説明される。これらのステップのうちの１つまたは複数は、さらなる実施形態においては省略されることもあり、ステップは、異なる順序で実行されることもあり、あるいは追加のステップが、追加されることもあることが、理解される。
【０１０８】
[00119]  上記で説明されるシステムを使用して、仮想オブジェクトと実オブジェクトとを含む複合現実体験が、ヘッドマウントディスプレイデバイスを着用していない人々が見るためのモニタに表示される可能性もある。さらに、複合現実シーンの周囲の望ましい位置にカメラアセンブリ５０を位置づけることにより、複合現実環境の異なるビューが、選択され、モニタに表示されることもある。
【０１０９】
[00120]  図１３は、第１のカメラアセンブリ５０ａ（図示されず）によって取り込まれ、第１のモニタ６０ａに表示されるスクリーンショットを示す。スクリーンショットは、実オブジェクトと、仮想オブジェクト（仮想コンテンツ４０と仮想ツール４４とを含む）とを示している。第２のカメラアセンブリ５０ｂはまた、シーンの内部にもあり、またスクリーンショットの中に取り込まれる。第１のモニタ６０ａはまた、やはりシーンの中にある第２のモニタ６０ｂを表示している。第２のモニタ６０ｂは、図１３の中に示されるような同じ画像（すなわち、第１のモニタ６０ａに示されている同じ画像）を示している。
【０１１０】
[00121]  図１４は、本技術によるシステムの一実施形態についてのブロック図を示す。コンポーネント間の通信が、特有の有線接続またはワイヤレス接続を用いて示されるが、コンポーネント間の通信は、さらなる実施形態においては有線またはワイヤレスとすることができることが、理解される。
【０１１１】
[00122]  本技術のいくつかの他の特徴は、複合現実環境のビデオフィードが、ネットワーク接続の上でリモートロケーションに送信され得ることを含んでいる。複合現実環境は、次いで、モニタで、またはリモートロケーションにあるヘッドマウントディスプレイデバイスを経由してのいずれかで、見られることもある。
【０１１２】
[00123]  さらなる実施形態においては、本技術は、固体世界にロックされた仮想オブジェクトを獲得するためにセンサがそれ自体を露出する瞬間においてポーズを収集する時間同期化システムおよび方法を使用している。仮想オブジェクトは、現実世界画像が、カメラ５２から取得される時よりも後の時間にレンダリングされる。それは、カメラアセンブリの上のトラッキングデバイスからのポーズが、６０Ｈｚで受信されるからである。実施形態においては、本システムは、はっきりと異なる連続的な期間において、カメラポーズをとることができる。本システムは、次いで、これらの期間の間で補間して、サブミリ秒の精度で、与えられた時間の瞬間におけるカメラポーズを正確に知ることができる。正確な時間における瞬間において知られているカメラアセンブリの位置を用いて、仮想オブジェクトは、その正確な時間における瞬間にわたってレンダリングされて、現実世界ビデオフィードに対する仮想オブジェクトの極めて近いマッチングを提供している。そのような方法は、オブジェクトをレンダリングする際にわずかの遅延、例えば、１００ｍｓから１５０ｍｓまでの遅延を使用するが、カメラアセンブリ５０によって生成される画像の中で、仮想オブジェクトと、実オブジェクトとのシームレスな融合を提供する。
【０１１３】
[00124]  さらなる実施形態においては、時間におけるどのような与えられた瞬間についても、カメラアセンブリ５０のカメラ５２のズーム／焦点／露出／白色バランス／ＩＳＯ設定は、処理ユニット４および／またはコンピューティングシステム７０に電子的に通信される可能性があり、そのようにして、適切なズーム設定、ぼやけ設定、および他の設定は、その正確なフレームのために使用される可能性がある。これは、ハイエンドカメラのセンサの上でレンズによって生成される画像に、幾何学的に、また質的に、マッチする仮想画像のレンダリングを可能にする。
【０１１４】
[00125]  上記で説明される実施形態は、カメラアセンブリ５０と、ヘッドマウントディスプレイデバイス２を着用するユーザとを含んできている。さらなる実施形態においては、ヘッドマウントディスプレイデバイス２は、省略されることもある。そのような一実施形態においては、ユーザ１８は、空間の中のデバイスの位置を追跡することを可能にするセンサを含むデバイスを有することができる。そのようなデバイスは、例えば、セルラー方式電話またはコンピューティングタブレットとすることができる。シーンマップは、１つまたは複数のカメラアセンブリ５０、および／またはユーザ１８によって保持されるデバイスの中のセンサによって構築される可能性がある。複合現実環境は、モニタ６０またはユーザによって保持されるデバイスを経由してユーザに表示されるべきである。
【０１１５】
[00126]  要約すると、一実施形態においては、本技術は、実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示するためのシステムであって、仮想環境において３次元仮想オブジェクトを表示するためのディスプレイユニットを含むヘッドマウントディスプレイデバイスと、１つまたは複数のカメラアセンブリと、ディスプレイデバイスと１つまたは複数のカメラアセンブリとに動作可能に結合された処理ユニットとを備えており、処理ユニットは、ヘッドマウントディスプレイと、３次元仮想オブジェクトと、１つまたは複数のカメラアセンブリとがレジストレーションされる（register）３次元座標空間を含むシーンマップを生成し、処理ユニットと、１つまたは複数のカメラアセンブリのうちのカメラアセンブリとは、カメラアセンブリの視点から、シーンマップを使用して、複合現実環境の表示のための画像を生成する、システムに関する。
【０１１６】
[00127]  さらなる実施形態においては、本技術は、実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示するためのシステムであって、複合現実環境において現実世界オブジェクトの画像を異なる視点から取り込むための複数の画像取り込みデバイスと、複数の画像取り込みデバイスに動作可能に結合された処理ユニットとを備えており、処理ユニットは、互いに対して複数の画像取り込みデバイスの位置を識別し、処理ユニットは、さらに、複合現実環境において仮想オブジェクトを生成し、また複数の画像取り込みデバイスに対して仮想オブジェクトの位置を識別し、処理ユニットと、複数の画像取り込みデバイスのうちの画像取り込みデバイスとは、画像取り込みデバイスの視点から２次元モニタで表示するための複合現実環境の画像を生成する、システムに関する。
【０１１７】
[00128]  別の実施形態においては、本技術は、実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示する方法であって、（a）ヘッドマウントディスプレイデバイスに組み込まれた第１のカメラを経由して、第１の視点から、複合現実環境の第１の画像を取り込むステップと、（b）カメラアセンブリに組み込まれた第２のカメラを経由して、第２の視点から、複合現実環境の第２の画像を取り込むステップと、（c）複合現実環境の中の位置において仮想オブジェクトを生成するステップと、（d）ヘッドマウントディスプレイデバイスの光学系に仮想オブジェクトを表示するステップであって、仮想オブジェクトは、ヘッドマウントディスプレイデバイスの視点から表示されている、表示するステップと、（e）仮想オブジェクトと一緒にカメラアセンブリから２次元ディスプレイデバイスの上に第２の画像を表示するステップであって、仮想オブジェクトは、カメラアセンブリの視点から表示されている、表示するステップとを含む方法に関する。
【０１１８】
[00129]  本主題は、構造的特徴および／または方法論的動作に特有の言語において説明されてきているが、添付の特許請求の範囲の中で規定される主題は、必ずしも上記で説明される特定の特徴または動作だけに限定されるものとは限らないことを理解すべきである。もっと正確に言えば、上記で説明される特定の特徴および動作は、特許請求の範囲を実装する例示の形態として開示される。本発明の範囲は、この文書に添付された特許請求の範囲によって規定されることを意図している。
【図１】
2018511098.tif 000003
【図２】
2018511098.tif 000004
【図３】
2018511098.tif 000005
【図４】
2018511098.tif 000006
【図５】
2018511098.tif 000007
【図６】
2018511098.tif 000008
【図７】
2018511098.tif 000009
【図８】
2018511098.tif 000010
【図９】
2018511098.tif 000011
【図１０】
2018511098.tif 000012
【図１１】
2018511098.tif 000013
【図１２】
2018511098.tif 000014
【図１３】
2018511098.tif 000015
【図１４】
2018511098.tif 000016
【手続補正書】
【提出日】平成28年5月13日(2016.5.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示するためのシステムであって、
仮想環境において３次元仮想オブジェクトを表示するためのディスプレイユニットを含むヘッドマウントディスプレイデバイスと、
１つまたは複数のカメラアセンブリと、
前記ディスプレイデバイスと前記１つまたは複数のカメラアセンブリとに動作可能に結合された処理ユニットと
を備えており、前記処理ユニットは、前記ヘッドマウントディスプレイと、前記３次元仮想オブジェクトと、前記１つまたは複数のカメラアセンブリとがレジストレーションされる３次元座標空間を含むシーンマップを生成し、前記処理ユニットと、前記１つまたは複数のカメラアセンブリのうちのカメラアセンブリとは、前記カメラアセンブリの視点からの表示のために前記複合現実環境の画像を生成し、
前記カメラアセンブリは、第１のカメラアセンブリであり、前記１つまたは複数のカメラアセンブリは、第２のカメラアセンブリをさらに備えており、前記システムは、前記第１および第２のカメラアセンブリのうちのいずれか一方の視点から前記複合現実環境の前記画像の表示を選択するための選択デバイスをさらに備えている、システム。
【請求項２】
前記カメラアセンブリは、前記複合現実環境において実オブジェクトのカラー画像または白黒画像を取り込むための画像取り込みデバイスを含んでいる、請求項１に記載のシステム。
【請求項３】
前記カメラアセンブリは、前記複合現実環境の深さデータを取り込むためのイメージセンサを含んでおり、前記深さデータを使用して、前記イメージセンサの視点から前記複合現実環境の深さマップを生成する、請求項１に記載のシステム。
【請求項４】
前記カメラアセンブリと、前記ヘッドマウントディスプレイデバイスとは、前記カメラアセンブリによって共通座標系に対してキャリブレーションされ、前記ヘッドマウントディスプレイデバイスはキャリブレーションキューの１つまたは複数の画像を取り込む、請求項１に記載のシステム。
【請求項５】
前記処理ユニットは、前記カメラアセンブリおよび前記ヘッドマウントディスプレイデバイスの視点からキャリブレーションターゲットの前記１つまたは複数の画像からの深さイメージングセンサデータに基づいて、前記カメラアセンブリおよび前記ヘッドマウントディスプレイデバイスのポーズを決定する、請求項４に記載のシステム。
【請求項６】
前記カメラアセンブリは、前記シーンマップの前記３次元座標空間内に前記カメラアセンブリをレジストレーションする際に支援するための慣性測定ユニットを含む位置センサを含んでいる、請求項１に記載のシステム。
【請求項７】
少なくとも第１の２次元モニタと第２の２次元モニタとをさらに備えており、前記第１のモニタは、前記第１のカメラアセンブリの視点から前記複合現実環境の前記画像を表示し、前記第２のモニタは、前記第２のカメラアセンブリの視点から前記複合現実環境の前記画像を表示する、請求項１に記載のシステム。
【請求項８】
実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示するためのシステムであって、
前記複合現実環境において、現実世界オブジェクトの画像を異なる視点から取り込むための複数の画像取り込みデバイスと、
前記複数の画像取り込みデバイスに動作可能に結合された処理ユニットと
を備えており、前記処理ユニットは、互いに対して前記複数の画像取り込みデバイスのポーズを識別し、前記処理ユニットはさらに、前記複合現実環境において仮想オブジェクトを生成し、また前記複数の画像取り込みデバイスに対して前記仮想オブジェクトの位置を識別し、前記処理ユニット、および前記複数の画像取り込みデバイスのうちの画像取り込みデバイスは、前記画像取り込みデバイスの視点から２次元モニタで表示するための前記複合現実環境の画像を生成し、
前記複数の画像取り込みデバイスは、第１の画像取り込みデバイスと、第２の画像取り込みデバイスとを備えており、前記システムは、前記第１および第２の画像取り込みデバイスのうちのいずれかの観点から前記複合現実環境の前記画像の表示を選択するための選択デバイスをさらに備えている、システム。
【請求項９】
前記画像取り込みデバイスは、ヘッドマウントディスプレイデバイス上にカメラを備えており、前記ヘッドマウントディスプレイデバイスは、前記ヘッドマウントディスプレイデバイスの光学系に前記仮想オブジェクトを表示するためのディスプレイユニットをさらに備えている、請求項８に記載のシステム。
【請求項１０】
前記画像取り込みデバイスは、カメラアセンブリを備えている、請求項８に記載のシステム。
【請求項１１】
前記処理ユニットは、ＲＧＢ画像および深さマップのうちの少なくとも一方を使用して、他の画像取り込みデバイスに対する前記カメラアセンブリの前記ポーズを識別する、請求項１０に記載のシステム。
【請求項１２】
前記カメラアセンブリは、他の画像取り込みデバイスに対する前記カメラアセンブリの前記ポーズを識別する際に支援するための慣性測定ユニットを含む位置センサを含んでいる、請求項１０に記載のシステム。
【請求項１３】
実オブジェクトと仮想オブジェクトとを含む複合現実環境を提示する方法であって、
（a）ヘッドマウントディスプレイデバイスに組み込まれた第１のカメラを経由して、第１の視点から、前記複合現実環境の第１の画像を取り込むステップと、
（b）カメラアセンブリに組み込まれた第２のカメラを経由して、第２の視点から、前記複合現実環境の第２の画像を取り込むステップと、
（c）前記カメラアセンブリに組み込まれた第３のカメラを経由して、第３の視点から、前記複合現実環境の第３の画像を取り込むステップと、
（d）前記複合現実環境の中の位置において仮想オブジェクトを生成するステップと、
（e）前記ヘッドマウントディスプレイデバイスの光学系に前記仮想オブジェクトを表示するステップであって、前記仮想オブジェクトは、前記ヘッドマウントディスプレイデバイスの視点から表示されている、表示するステップと、
（f）前記カメラアセンブリから２次元ディスプレイデバイス上に前記第２の画像を前記仮想オブジェクトと一緒に表示することであって、前記仮想オブジェクトは、前記カメラアセンブリのうちの前記第２のカメラの視点から表示されている、表示すること、および
前記カメラアセンブリから２次元ディスプレイデバイス上に前記第３の画像を前記仮想オブジェクトと一緒に表示することであって、前記仮想オブジェクトは、前記カメラアセンブリの前記第３のカメラの視点から表示されている、表示すること、
のうちのいずれか一方を選択するステップと
を含む方法。
【請求項１４】
前記２次元ディスプレイデバイスの表示を、前記仮想オブジェクトと一緒に前記第１の画像を前記ヘッドマウントディスプレイデバイスから表示することへと変更するステップをさらに含み、前記仮想オブジェクトは、前記ヘッドマウントディスプレイデバイスの視点から表示されている、請求項１３に記載の方法。
【国際調査報告】
2018511098.tif 000017
2018511098.tif 000018