【文献】
安田 敏宏 Toshihiro Yasuda,ブラウザ上でのインタラクティブな3次元仮想環境を実現するサーバレンダリングに関する検討 A Study on Server Rendering for Interactive 3D Virtual Environments on a Web Browser,ヒューマンインタフェース学会研究報告集 Vol.10 No.4 Correspondences on Human Interface,日本,特定非営利活動法人ヒューマンインタフェース学会 Human Interface Society,2008年11月 6日,第10巻,第17頁-第20頁
(58)【調査した分野】(Int.Cl.,DB名)
前記ディスプレイ内にそれぞれ最適画像領域を作成する前記ステップは、前記ユーザーが占める前記3D物理的環境内における現在のユーザー位置の決定に基づいて前記最適画像のそれぞれを作成するステップを含む、請求項1に記載の方法。
光学的に結合させる前記ステップは、前記最適画像のそれぞれの少なくとも一部分を傾いた反射面に投射して、前記投射されたそれぞれの最適画像が反射によって前記対応する目の中心窩領域へ導かれるようにするステップを含む、請求項1に記載の方法。
予測する前記ステップは、少なくとも1つの予測アルゴリズムを用いて、前記追跡するステップで取得されたデータに基づいてユーザーの目の少なくとも1つの次の位置を決定するステップを含む、請求項1に記載の方法。
【発明を実施するための形態】
【0007】
[0031] ニアアイ・ディスプレイ・デバイスを用いたときのユーザーの体験を改良する技術を開示する。ユーザーは、頭部装着ディスプレイ・デバイスのようなニアアイ・ディスプレイ・デバイスを介して場面を見る。ユーザーの視野は、ユーザーが見ている環境または空間であり、このユーザーの視野を判定する。この視野に関して用いるのに最適な画像をレンダリングする。視野におけるユーザーの目の位置を追跡することによって、ユーザーの焦点領域を判定する。最適画像の表示は、この画像の最適部分をユーザーの焦点領域、1つの場合では、ユーザーの眼窩に結合することによって行われ、表示に必要とされる処理およびエネルギーを低減する。ユーザーの目の位置を追跡し、次の目の位置を計算し、ユーザーの目の次の位置への動きと同時に、その次の位置に画像のその部分を位置付ける。
【0008】
[0032] 画像の最適部分の位置付けは、多数の異なるディスプレイ・デバイスのいずれでも行われ、機械的に制御されるミラーおよび投射ディスプレイが含まれる。ユーザーの目の潜在的な次の位置を判定するために、予測アルゴリズムを用いる。
【0009】
[0033]
図1は、ユーザーの意図に基づいて最適画像を生成するシステム10の一実施形態のコンポーネント例を示すブロック図である。システム10は、ワイヤ6を通じて演算装置4と通信するニアアイ頭部装着ディスプレイ・デバイス2のような、透視ディスプレイ・デバイスを含む。 他の実施形態では、頭部装着ディスプレイ・デバイス2は、ワイヤレス通信によって演算装置4と通信する。
図1のコンポーネントは透視ディスプレイ・デバイスを示すが、本技術と共に用いるのに適した他のデバイスの実施形態を、
図3B〜
図3Dに示す。
【0010】
[0034] 頭部装着ディスプレイ・デバイス2は、一実施形態ではめがねの形状であり、ユーザーがディスプレイを透視しこれによってユーザーの前方にある空間の実際の直接視(actual and direct view)を有することができるように、ユーザーの頭部に着用する。「実際の直接視」という用語の使用は、形成された物体の画像表現を見るのではなく、人間の目で直接実世界の物体を見る能力を指す。例えば、ガラスを通して室内を見ると、ユーザーはその部屋の実際の直接視を有することができ、一方テレビジョンにおいて部屋のビデオを見ることは、その部屋の実際の直接視ではない。頭部装着ディスプレイ・デバイス2のこれ以上の詳細については、以下で説明する。
図1および
図3A〜
図3Dに示すデバイスはめがねの形状となっているが、頭部装着ディスプレイ・デバイス2は、ゴーグルが付いたヘルメットというような、他の形態をなしてもよい。
【0011】
[0035] 一実施形態では、演算装置4は、ユーザーの手首に着用され、頭部装着ディスプレイ・デバイス2を動作させるために用いられる計算パワーの多くを含む。演算装置4は、1つ以上のハブ計算システム12にワイヤレスで通信する(例えば、WiFi、Bluetooth(登録商標)、赤外線、または他のワイヤレス通信手段)。
【0012】
[0036] ハブ計算システム12は、コンピューター、ゲーミング・システムまたはコンソール等であってもよい。一実施形態例によれば、ハブ計算システム12は、このハブ計算システム12が、ゲーミング・アプリケーション、ゲーム以外のアプリケーション等のようなアプリケーションを実行するために用いることができるように、ハードウェア・コンポーネントおよび/またはソフトウェア・コンポーネントを含むことができる。一実施形態では、ハブ計算システム12は、本明細書において記載するプロセスを実行するためにプロセッサー読み取り可能記憶デバイスに格納されている命令を実行することができる、標準的なプロセッサー、特殊プロセッサー、マイクロプロセッサー等のようなプロセッサーを含むことができる。
【0013】
[0037] 種々の実施形態において、
図2Aおよび
図8〜
図15に関して本明細書において説明するプロセスは、全体的にまたは部分的に、ハブ計算デバイス12または演算装置4のいずれか、および/またはこれら2つの組み合わせによって実行する。
【0014】
[0038] 更に、ハブ計算システム12は、キャプチャー・デバイス20Aおよび20Bのような、1つ以上のキャプチャー・デバイスも含む。他の実施形態では、2つよりも多いまたは少ないキャプチャー・デバイスを用いることができる。一実施態様例では、キャプチャー・デバイス20Aおよび20Bは、部屋の異なる部分を取り込むように、異なる方向に照準を向けられている。尚、2つのキャプチャー・デバイスの視野が多少重複し、ハブ計算システム12が、これらのキャプチャー・デバイスの視野が互いにどのように関係するのか把握できるようにすると有利であると考えられる。このように、複数のキャプチャー・デバイスを用いて、部屋全体(または他の空間)を見る(view)ことができる。あるいは、動作中に1つのキャプチャー・デバイスをパンニングすることができ、関連する空間全体が経時的にそのキャプチャー・デバイスによって見ることができるような場合、1つのキャプチャー・デバイスを用いることもできる。
【0015】
[0039] キャプチャー・デバイス20Aおよび20Bは、例えば、1人以上のユーザーおよび周囲の空間を視覚的に監視するカメラとするとよく、周囲の空間の構造だけでなく、1人以上のユーザーによって行われるジェスチャーおよび/または動きも取り込み、分析し、そして追跡して、アプリケーションにおいて1つ以上の制御または動作(action)を実行する、および/またはアバターまたは画面上のキャラクターを動画化することができるとよい。
【0016】
[0040] ハブ計算システム12は、ゲームまたはアプリケーションの映像部分を供給することができるテレビジョン、モニター、高品位テレビジョン(HDTV)等のようなオーディオビジュアル・デバイス16に接続されていてもよい。例えば、ハブ計算システム12は、ゲーム・アプリケーション、ゲーム以外のアプリケーション等と関連するオーディオビジュアル信号を供給することができる、グラフィクス・カードのようなビデオ・アダプター、および/またはサウンド・カードのようなオーディオ・アダプターを含んでもよい。オーディオビジュアル・デバイス16は、ハブ計算システム12からオーディオビジュアル信号を受け取ることができ、次いでこのオーディオビジュアル信号と関連するゲームまたはアプリケーションの映像部分および/またはオーディオを出力することができる。一実施形態によれば、オーディオビジュアル・デバイス16は、例えば、S−Videoケーブル、同軸ケーブル、HDMI(登録商標)ケーブル、DVIケーブル、VGAケーブル、コンポーネント・ビデオ・ケーブル、RCAケーブル等によって、ハブ計算システム12に接続されるとよい。一例では、オーディオビジュアル・デバイス16は内部スピーカを含む。他の実施形態では、オーディオビジュアル・デバイス16、別個のステレオ、またはハブ計算システム12を外部スピーカ22に接続する。
【0017】
[0041] ハブ計算デバイス10は、キャプチャー・デバイス20Aおよび20Bと共に、人間(または他のタイプの)ターゲットを認識、分析、および/または追跡するために用いることができる。例えば、キャプチャー・デバイス20Aおよび20Bを用いて、頭部装着ディスプレイ・デバイス2を着用しているユーザーを追跡することができ、ユーザーのジェスチャーおよび/または動きを取り込んでアバターまたは画面上のキャラクターを動画化することができ、および/またはハブ計算システム12が実行しているアプリケーションに作用するために用いることができる制御として、ユーザーのジェスチャーおよび/または動きを解釈することもできる。
【0018】
[0042] 開示する技術の一実施形態では、以下で詳細に論ずるように、システム10は、ユーザーの視野および焦点領域を判定することに基づいて、ユーザーに最適な画像を生成する。この最適画像は、例えば、物体の強調した外観、または視野上に人工的に重ね合わせた物体を含むことができ、ユーザーに改良した体験を提供する。最適画像は、ユーザーの目の位置および移動パターンに応じて、最適な部分(
図2Bに示す)が、頭部装着ディスプレイ・デバイス2を介して、ユーザーに表示される。
【0019】
[0043]
図2Aは、ディスプレイにおいて最適画像の一部を目に結合する方法の一実施形態を示す。
図2Aのプロセスについて、
図2B〜
図2Gと関係付けて説明する。
[0044] ステップ30において、ユーザーの視野および焦点領域を判定する。先に注記したように、ユーザーの視野は、ユーザーの環境または場面、ユーザーの頭部の位置および向き、ならびにユーザーの目の位置の関数である。
図2Fは、環境1100におけるユーザー1112を示す。ユーザー1112は、照明1106、テーブル1120、処理デバイス1116、キャプチャー・デバイス20A、20B、ディスプレイ1110、および時計1118を含む多数の物体を視野内(線1121によって規定する)で見ている様子が示されている。また、ユーザーは床1108および壁1102を見るが、椅子1107は見ず、壁1104の一部だけを見る。環境1100は、座標系1150に関して定義することができ、ユーザーの頭部位置は、第2座標系1152に関して定義することができる。
【0020】
[0045] 一実施形態では、ユーザーの視野内における焦点領域とは、焦点曲線に沿った固定点150における領域である。例えば、瞳間の収斂(convergence)は、焦点曲線147上にある焦点、即ち、ホロプターまで三角測量するために用いることができ、ホロプターから、焦点領域およびパナムの融合エリアを計算することができる。パナムの融合エリア147とは、一方の網膜におけるいずれの点も他方の網膜上の1つの点と融合するような網膜のエリアであり、人間の目による両眼立体視に対する単一視のエリアを形成する。
図2Eに示すように、各ユーザーの目は、中心窩を含む。これは、一般に眼窩としても知られており、網膜の黄斑領域の中心に位置する。眼窩は、鮮明な中心視野を担う(眼窩視野とも呼ばれる)。これは、読むため、テレビジョンまたは映画を見るため、運転するため、および視覚的詳細が最も重要であるいずれの活動のためにも必要となる。
図2Eにおいて、眼窩は148および149で示されている。
【0021】
[0046] 眼窩148、149に対して最適画像を向けるまたは結合すると、ユーザーは画像の最適部分に対する視野に確実に焦点を合わせることができる。加えて、眼窩に結合するために必要な画像の部分は比較的小さく、網膜上において直径約1mmの画像である。頭部装着ディスプレイ2によって比較的小さいエリア部分をレンダリングするため、頭部装着ディスプレイ2に対する電力要件が低下する。
【0022】
[0047] ステップ32において、判定した視野に対して、ユーザーに表示する最適画像を作成する。最適画像は、アプリケーションがその画像をレンダリングすることによって決定され、視野内の1つ以上の個々のオーバーレイ画像を含むか、または視野全体を覆う(encompass)。
【0023】
[0048]
図2Bは、画像がディスプレイ上に投射されていないときに、ユーザー1112が環境1100においてディスプレイ・デバイスを介して何を見るかを示す。
図2Cは、
図2Bにおける場面に投射することができる最適画像を示す。
図2Cの例では、最適画像1200は、環境1100の場面を完全に遮っている。この例では、この場面は、男性1128、鳥のイメージ1126、およびトロフィー1127を描画する。一実施形態では、画像をレンダリングするアプリケーションは、場面におけるこれらのエレメントの外形(configuration)および位置を決定しており、更にこのような物体が、照明1106、時計1118、およびディスプレイ1110というような実世界の物体を遮るか否か判断し終えている。
【0024】
[0049] ステップ34において、ユーザーの目の現在の位置を判定し、36において、この目の現在の位置において、ユーザーの焦点領域に、最適画像の最適部分を結合する。一例では、これを
図2Dに示し、鳥のイメージ1126の画像が、際立って実世界環境1100上に重ね合わせて示されている。この鳥のイメージ1126は、画像のバランスに関して際立っている。一実施形態では、最適画像の他のエレメント(この場合、男性およびトロフィー)はレンダリングされないか、または解像度を落としてレンダリングされる(図示しない)。更に他の態様では、この部屋の他の視覚的エレメントは、ユーザーの視野から遮られてもよい。
【0025】
[0050] ディスプレイ・デバイスの処理パワーを、ユーザーの中心視覚に結合される画像の最適部分をレンダリングすることのみに集中することによって、最適画像における他のエレメントをレンダリングしないで済ませるか、または、最適画像よりも低い正確度、したがって少ないリソースでレンダリングしてもよい。一実施形態では、最適画像は画像全体の内の断片である。正常な目の瞳は、直径が、明るい場合の1mmと暗い場合の7mmとの間であると考えられる。表示は、通常、直径3mmの光に最適化されている。瞳上における画像の一部に集中することによって、画像光をユーザーの焦点領域に直接変換することができ、画像を生成するために必要な光を大幅に減少させることができる。
【0026】
[0051] 画像の一部を対象者の瞳上に集中するために、画像によって生成される光線に、方向および瞳上の目標点を与える。目の近傍からの光線の一部はその目の瞳に入るが、瞳に入らない光線は無駄になり、電力を消費し、他の望ましくない影響を及ぼす可能性もある。
【0027】
[0052] 一般に、離れた地点からの光線は、目の近傍において全てほぼ平行となり、ほぼ共通の方向を共有すると考えることができる。理想的には、目の光学系(optics)がこれらの光線を、網膜上の眼窩領域において合焦させる。異なる方向からの平行な光線は、異なる点として見られる。
【0028】
[0053] 目の瞳において画像を最適化するために、頭部装着ディスプレイは、画像からの光線が導かれる瞳における方向および入射点を変更する。対象者が自由空間において光学エレメントを介して見た場面の光学的歪みを補正しようとする場合、本技術における頭部装着ディスプレイの機構によって、画像表示の補正および誘導が行われる。
【0029】
[0054] 本技術によれば、以下で説明する実施形態の位置付けシステム160および160aが、画像をユーザーに反射するマイクロ・ディスプレイまたはミラーの方向的位置付け(directional positioning)を行う手段を有する(provide)。この方向的位置付けは、ディスプレイまたはミラーに対する画像の位置付けと共に、目の位置に対して最適な位置および方向を規定する。これは、例えば、ディスプレイ153またはミラー166を三次元で傾けることによって行うことができ、画像は、ディスプレイまたはミラー上において、ミラーまたはディスプレイ上の適正な位置にレンダリングされる。
【0030】
[0055] 尚、以下で明記することに加えて、表示画像の方向を最適化するためには、種々の他のタイプの機械式または電気機械式エレメントを設けてもよいことは認められよう。この方向的位置付けを、本技術の予測目追跡と併せることによって、システムにとって最適な処理が行われる。
【0031】
[0056] この画像の最適部分の結合を維持するために、ステップ38において、次にありそうなユーザーの目の動きを追跡し、ステップ40において、最適表示画像の他の最適部分を、240における次の位置において、ユーザーの焦点領域に結合する。視野が44において変化した場合、新たな視野を32において判定する。44において、視野が変化しない場合、38において、ユーザーの目が実際に予測した位置に移動したか否かについて判定を行い、本方法は、38において、潜在的な次の目移動位置を計算する。44における目の現在の位置の追跡、および38における次の位置の計算のループは、相応しい視覚体験を提供するために、1つ以上のマイクロプロセッサーまたは専用追跡回路によって、ユーザーの目の移動と同時に、最適画像の当該部分をこの移動の次の位置に持って行くために、ほぼ瞬時に行うことができる。
【0032】
[0057] 尚、以上で述べた説明における次のおよび現在のという用語の使用は、画像の1つの部分に限定される必要はないことは認められてしかるべきである。例えば、
図2Gを参照すると、ステップ36または40において現在の位置としてレンダリングされる各部分は、
図2Aにおいて説明した各「現在の」および「次の」部分が2つの画像部分を含むことができるように、第1時点Tにおける画像の部分(画像1126)、およびユーザーの目が時点t2において位置すると予測される第2時点T2における画像の部分(画像1135)を含むとよい。
【0033】
[0058] 更にまた、画像1200の代わりの部分を、ユーザーの目をその位置に引きつけるために、全体的にまたは部分的に最大解像度でレンダリングしてもよいことも認められてしかるべきである。例えば、ユーザーの目の動き、およびユーザーの注意をアプリケーションの所与のコンテキストに引きつけるために、アプリケーションがプレーヤー1128またはトロフィー1127をレンダリングすることを選択することもできる。
【0034】
[0059] 更に、本技術は、オーバーレイ画像の使用を必要とせず、ユーザーの環境を参照することなく、画像のみをユーザーに表示するために用いることができるという利点があることも認められてしかるべきである。
【0035】
[0060]
図3Aは、頭部装着ディスプレイ・デバイス2の一部の上面図を示し、弦102および鼻ブリッジ104を含むフレームの一部を含む。頭部装着ディスプレイ・デバイス2の右側だけが図示されている。鼻ブリッジ104の中には、以下で説明するように、音を記録しそのオーディオ・データーを演算装置4に送信するマイクロフォン110が組み込まれている。頭部装着ディスプレイ・デバイス2の前方には、ビデオおよび静止画像を取り込むことができるビデオ・カメラ113に面する部屋がある。これらの画像は、以下で説明するように、演算装置4に送信される。
【0036】
[0061] 頭部装着ディスプレイ・デバイス2のフレームの一部が、ディスプレイ(1つ以上の光学エレメントを含む)を包囲する。頭部装着ディスプレイ・デバイス2のコンポーネントを示すために、ディスプレイを包囲するフレームの一部は図示されていない。一実施形態では、このディスプレイは、導光光エレメント112、不透明フィルター114、透視レンズ116、および透視レンズ118を含む。一実施形態では、不透明フィルター114は、透視レンズ116の後ろにあってこれと整列されており、導光光学エレメント112は不透明フィルター114の後ろにあってこれと整列されており、透視レンズ118は、導光光学エレメント112の後ろにあってこれと整列されている。透視レンズ116および118は、めがねに用いられる標準的なレンズであり、いずれの処方(prescription)に合わせてでも(処方がない場合も含む)作成することができる。一実施形態では、透視レンズ116および118は、可変処方レンズと置き換えることができる。実施形態の中には、頭部装着ディスプレイ・デバイス2が1つの透視レンズしか含まない場合、または透視レンズを含まない場合もある。他の代替案では、処方レンズは導光光学エレメント112の内側に入ることができる。不透明フィルター114は、自然光(画素毎または均一にのいずれか)を排除して、仮想形像のコントラストを強調する。導光光学エレメント112は、人工光を目まで伝える。不透明フィルター114および導光光学エレメント112のこれ以上の詳細については、以下で説明する。
【0037】
[0062] 弦102には、またはその内側には、画像ソースが装着されており、(一実施形態では)仮想画像を投射するマイクロ・ディスプレイ・アセンブリー120と、マイクロ・ディスプレイ120からの画像を導光光学エレメント112に導く連ス122とを含む。一実施形態では、レンズ122は平行化レンズである。
【0038】
[0063] 制御回路136は、頭部装着ディスプレイ・デバイス2の他のコンポーネントをサポートする種々の電子回路を設ける。制御回路136のこれ以上の詳細については、以下で
図3に関して示すことにする。弦102の内側には、イヤホン130、慣性センサー132、および温度センサー138があり、またはこれらは弦102に取り付けられる。一実施形態では、慣性センサー132は、三軸磁力計132A、三軸ジャイロ132B、および三軸加速度計132C(
図5参照)を含む。慣性センサーは、頭部装着ディスプレイ・デバイス2の位置、向き、急激な加速を検知するためにある。
【0039】
[0064] マイクロ・ディスプレイ120は、レンズ122を通して画像を投射する。マイクロ・ディスプレイ120を実現するために用いることができる、異なる画像生成技術がある。例えば、マイクロ・ディスプレイ120は、透過型投射技術を用いて実現することができる。この場合、光源は、白色光によるバックライトを受ける、光学的にアクティブな材料によって変調される。これらの技術は、通常、強力なバックライトおよび高い光エネルギ密度を有するLCD型ディスプレイを用いて実現されている。また、マイクロ・ディスプレイ120は、反射技術を用いて実現することもできる。この場合、外部光が反射され光学的にアクティブな材料によって変調される。技術に応じて、白色光源またはRGB光源のいずれかによって、照明を前方に発する。ディジタル光処理(DLP)、シリコン上液晶(LCOS)、およびQualcomm, inc.(クアルコム社)からのMirasol(登録商標)表示技術は全て、反射技術の例である。これらの技術は、殆どのエネルギーが変調構造(modulated structure)から遠ざかるように反射されるので効率的であり、本明細書において記載するシステムにおいて用いることができる。加えて、マイクロ・ディスプレイ120は、発光技術(emissive technology)を用いて実現することもできる。この場合、ディスプレイによって光を生成する。例えば、Microvision, Inc.(マイクロビジョン社)からのPicoP(登録商標)は、レーザー信号を、マイクロ・ミラー制御(steering)によって、透過エレメントとして作用する小さな画面上に出すか、または直接目に向けて放つ(例えば、レーザー)。
【0040】
[0065] 導光光学エレメント112は、マイクロ・ディスプレイ120からの光を透過させて、頭部装着ディスプレイ・デバイス2を着用しているユーザーの目140に向かわせる。また、導光光学エレメント112は、矢印142によって示されるように、頭部装着ディスプレイ・デバイス2の前方からの光も、導光光学エレメント112を介して目140に向けて透過させることができ、これによってユーザーがマイクロ・ディスプレイ120からの仮想画像を受け取ることに加えて、頭部装着ディスプレイ・デバイス2の前方にある空間の実際の直接視を有することを可能にする。つまり、導光光学エレメント112の壁は、透けて見える(see-through)。導光光学エレメント112は、第1反射面124(例えば、ミラーまたは他の表面)を含む。マイクロ・ディスプレイ120からの光は、レンズ・システム122を通過して、反射面124に入射する。反射面124は、マイクロ・ディスプレイ120からの入射光を反射して、導光光学エレメント112を構成する平面基板の内側に、内反射によって光が取り込まれるようにする。この基板の表面を数回反射した後、取り込まれた光波は、選択的反射面126のアレイに到達する。尚、図面が混みすぎるのを防止するために、5つの表面の内1つだけに126を付していることを注記しておく。反射面126は、基板の外側からこれらの反射面上に入射した光波を、ユーザーの目140に結合する。異なる光線が進行し異なる角度で基板の内側から反射する(bounce off)と、異なる光線が種々の反射面126に異なる角度で衝突する。したがって、異なる光線が、反射面の異なる1つ1つによって、基板から反射される。どの光線をどの表面126によって基板から反射させるかという選択は、表面126の適した角度を選択することによって管理される。導光光学エレメントについてのこれ以上の詳細は、米国特許出願公開2008/0285140、第12/214,366号において見いだすことができる。この出願は、"Substrate−Guide Optical Device"(基板誘導光学デバイス)と題し、2008年11月20日に公開された。この出願をここで引用したことにより、その内容全体が本願にも含まれるものとする。一実施形態では、各目がそれ自体の導光光学エレメント112を有する。頭部装着ディスプレイ・デバイスが2つの導光光学エレメントを有するとき、各目は、それ自体のマイクロ・ディスプレイ120を有し、双方の目で同じ画像を表示すること、または2つの目で異なる画像を表示することができる。他の実施形態では、光を双方の目に反射させる1つの導光光学エレメントを設けることができる。
【0041】
[0066] 不透明フィルター114は、導光光学エレメント112と整列されており、選択的に自然光が、均一にまたは画素毎に、導光光学エレメント112を通過するのを遮断する。一実施形態では、不透明フィルターは、透視LCDパネル、エレクトロクロミック・フィルム、または不透明フィルターとして役割を果たすことができる同様のデバイスとすることができる。このような透視LCDパネルは、従来のLCDから基板、バックライト、およびディフューザーの種々の層を除去することによって得ることができる。LCDパネルは、光に液晶を通過させる1つ以上の光透過性LCDチップを含むことができる。このようなチップは、例えば、LCDプロジェクターにおいて使用されている。
【0042】
[0067] 不透明フィルター114は、密集した画素の格子を含むことができ、各画素の光透過度は、最低透過度および最高透過度の間で個々に制御可能である。透過度の範囲は0〜100%が理想的であるが、これよりも限られた範囲でも容認可能である。一例として、偏光フィルターが2つしかないモノクロームLCDパネルでも、画素当たり約50%から90%の不透明度範囲をLCDの分解能まで与えるには十分である。最低の50%において、レンズは多少着色した外観を有するが、許容可能である。100%の透過度は、完全に透明なレンズを表す。「アルファ」スケールを0〜100%まで定めることができ、0%では光を通過させず、100%では光を通過させる。アルファの値は、以下で説明する不透明フィルター制御回路224によって、画素毎に設定することができる。
[0068] 実世界物体の代用にz−バッファリングを行った後、レンダリング・パイプラインからアルファ値のマスクを用いることができる。本システムは、拡張現実表示のために場面をレンダリングするとき、どの実世界物体がどの仮想物体の前にあるか注意を払う。仮想物体が実世界物体の前にある場合、仮想物体が遮るエリアを不透明にしなければならない。仮想物体が(仮想的に)実世界物体の後ろにある場合、ユーザーが実際の光のその対応するエリア(1画素以上のサイズ)の実世界の物体だけを見るように、その画素に対するあらゆる色だけでなく不透明性もオフにする。遮蔽(coverage)は、画素毎であるので、本システムは、仮想物体の一部が実世界の物体の前にある場合、仮想物体の一部が実世界の物体の後ろにある場合、そして仮想物体の一部が実世界の物体と同じ位置にある場合も扱うことができる。0%から100%まで不透明性を可変にすることができる低コスト、低パワーおよび軽量のディスプレイが、この使用には最も望ましい。更に、不透明フィルターは、カラーLCDによって、または有機LEDのような他のディスプレイによって、カラーでレンダリングし、広い視野を設けることができる。不透明フィルターについてのこれ以上の詳細は、"Opacity Filter For See-Through Mounted Display"(透過装着ディスプレイ用不透明フィルター)と題し、2010年9月21日に出願された米国特許出願第12/887,426号において示されている。この出願をここで引用したことにより、その内容全体が本願にも含まれることとする。
【0043】
[0069] LCDのような不透明フィルターは、一般に、本明細書において記載するような透視レンズには用いられなかった。何故なら、このように目に近い距離では、焦点がはずれる可能性があるからである。しかしながら、場合によっては、この結果が望ましいこともあり得る。ユーザーは、焦点が合うように設計された、追加カラーを用いた通常のHMDディスプレイによって、生き生きとしたカラー・グラフィクスによる仮想画像を見る。LCDパネルは、曖昧な黒い境界があらゆる仮想コンテンツを包囲するように、このディスプレイの「後ろに」配され、これを所望通りに不透明にする。本システムは、自然なぼけという欠点を変換して、アンチエリアシングおよび帯域幅削減という特徴を功利的に獲得する。これらは、低解像度で焦点がはずれた画像を用いることの当然の結果である。ディジタル的にサンプリングした画像には、効果的なスムージングがある。あらゆるディジタル画像にはエリアシングが生じ、サンプリングの離散的性質のために、自然なアナログおよび連続信号と比較すると、光の波長の周りで誤差が生ずる。スムージングが意味するのは、理想的なアナログ信号に視覚的に近づけることである。低解像度にしたことによって失われた情報は復元されないが、結果的に生ずる誤差はさほど目立たない。
【0044】
[0070] 一実施形態では、ディスプレイおよび不透明フィルターを同時にレンダリングし、角度−オフセットの問題を補償するために空間におけるユーザーの正確な位置に合わせてディスプレイおよび不透明フィルターを較正する。視野の両端における正しい画像オフセットを計算するために、目追跡を採用することができる。実施形態の中には、不透明フィルターにおいて、不透明量の時間的または空間的衰退(fade)を用いることができる。同様に、仮想画像の時間的または空間的衰退も用いることができる。1つの手法では、不透明フィルターの不透明量の時間的衰退は、仮想画像の時間的衰退に対応する。他の手法では、不透明フィルターの不透明量の空間的衰退が、仮想画像の空間的衰退に対応する。
【0045】
[0071] 1つの手法では、特定したユーザーの目の位置の視界から、仮想画像の後ろに来る不透明フィルターの画素には、不透明性を増大して与える。このように、仮想画像の後ろに来る画素を暗くして、実世界場面の対応部分からの光が、ユーザーの目に達しないように遮断する。これによって、仮想画像が現実的となり、最大範囲の色および輝度を表すことが可能になる。更に、拡張現実エミッタによる電力消費が低減する。何故なら、仮想画像は低い輝度で供給されるからである。不透明フィルターがないと、仮想画像が区別でき透明にならないようにするためには、実世界場面の対応する部分よりも明るい十分高い輝度で、仮想画像を供給しなければならない。一般に、不透明フィルターの画素を暗くする際、仮想画像の閉じた周囲を辿る画素を、その周囲の内部にある画素と共に暗くする。この周囲の直ぐ外側にありこの周囲を包囲する画素も暗くなるように(同じレベルの暗さ、または周囲の内部にある画素よりは暗くない)、多少の重複が得られることが望ましいこともあり得る。周囲の直ぐ外側にあるこれらの重複する画素は、周囲の内側における暗さから周囲の外側における最大量の不透明までの衰退(例えば、徐々に変わる不透明性の推移)を規定することができる。
【0046】
[0072] また、頭部装着ディスプレイ・デバイス2は、ユーザーの目の位置を追跡するシステムも含む。以下で説明するが、このシステムは、ユーザーの視野を判定できるようにユーザーの位置および向きを追跡する。しかしながら、人間は、彼らの前にあるあらゆるものを認知する訳ではない。逆に、ユーザーの目は環境の内一部(subset)に向けられる。したがって、一実施形態では、本システムは、ユーザーの視野の測定の精度を高めるために、ユーザーの目の位置を追跡する技術を含む。例えば、頭部装着ディスプレイ・デバイス2は、目追跡アセンブリー134(
図3A参照)を含む。目追跡アセンブリー134は、目追跡照明デバイス134A(
図4A参照)、および目追跡カメラ134B(
図4A参照)を含む。一実施形態では、目追跡照明源134Aは、IR光を目に向けて放出する1つ以上の赤外線(IR)発光器を含む。目追跡カメラ134Bは、反射したIR光を検知する1つ以上のカメラを含む。瞳の位置は、角膜の反射を検出する既知の撮像技法によって特定することができる。例えば、2008年7月22日にKranz et al.,に発行された"Head Mounted Eye Tracking and Display System"(頭部装着目追跡および表示システム)と題する米国特許第7,401,920号を参照のこと。この特許をここで引用したことにより、その内容全体が本願にも含まれるものとする。このような技法は、追跡カメラに対する目の中心の位置を突き止めることができる。一般に、目の追跡には、目の画像を得て、コンピューター映像技法を用いて眼窩内部における瞳の位置を判定する必要がある。一実施形態では、1つの目の位置を追跡すれば十分である。何故なら、目は通常一緒に動くからである。しかしながら、各目を別々に追跡することも可能である。
【0047】
[0073] 一実施形態では、目追跡照明デバイス134Aは、頭部装着ディスプレイ・デバイス2のレンズの角毎に1つずつのIR LEDおよびIR光検出器があるように、矩形配列とした4つのIRLEDおよび4つのIR光検出器を用いる。LEDからの光は目で反射する。4つのIR光検出器の各々において検出された赤外線光量によって、瞳の方向を判定する。即ち、目における白および黒の量から、その特定の光検出器に対して目から反射する光の量を判定する。こうして、光検出器は白目または黒目の量を測定する。4つのサンプルから、本システムは目の方向を判定することができる。
【0048】
[0074] 他の代替案は、先に論じたように、4つの赤外線LEDを用いるが、頭部装着ディスプレイ・デバイス2のレンズの側には1つの赤外線CCDしか用いないことである。このCCDは、小型のミラーおよび/またはレンズ(魚眼)を用い、このCCDがめがねのフレームから見ることができる目の75%までを撮像することができるようにしている。次いで、このCCDは、先に論じたのと全く同じように、画像を検知し、コンピューター映像を用いて画像を発見する。つまり、
図3A〜
図3Cは1つのIR発光器を有する1つのアセンブリーを示すが、
図2の構造は、4つのIR送信機および/または4つのIRセンサーを有するように調節することができる(注意:図の参照番号を更新する必要がある。図のいずれにおいても、これを見てはならない)。4つよりも多いまたは少ないIR送信機および/またはIRセンサーを用いることもできる。
【0049】
[0075] 目の方向を追跡する他の実施形態は、電荷追跡に基づく。この概念は、網膜が測定可能な正の電荷を保持し、角膜は負の電荷を有するという観察に基づく。目が動き回る間に電位を検出するために、ユーザーの耳にセンサーを装着し(イヤホン130の近く)、これらのセンサーは、目が何をしているのかリアル・タイムで効果的に読み出す。めがねの内部に装着された小型カメラというような、目を追跡するための他の実施形態を用いることもできる。
【0050】
[0076]
図3B〜
図3Dは、頭部装着ディスプレイ・デバイス2の一部の代替実施形態2bおよび2cを示す。
図3B〜
図3Dにおいて、同様の参照番号は、
図3Aにおいて識別した部分と同様の部分を示すこととする。
【0051】
[0077]
図3Bは、透視型でない頭部装着ディスプレイ・デバイス2bを示す。
図3Bのディスプレイ・デバイス2bは、前方に面したレンズ133aを用いている。このレンズ133aは、場面(環境1100のような)の映像(view)をユーザーの目140に結合するために、導波路124Aに結合されている。マイクロ・ディスプレイ153は、LCD、LED、またはOLEDというような、前述のディスプレイ・タイプであればいずれでも備えることができ、個々の活性化された画素エレメントのアレイによって規定される解像度を有する。その組み合わせは、ユーザーの眼窩に結合するのに適した最適画像の部分を生成するために用いられる。マイクロディスプレイ153は、ディスプレイの各角において結合されている複数の微小電気機械エレメント160aに結合し、ユーザーの目140に対してディスプレイを三次元で位置付けることができる。つまり、マイクロ・ディスプレイ153は、ディスプレイの中心点を中心とする多数の回転軸「Z」および「X」と、ユーザーに目に対して垂直「V」および水平「H」配位(positioning)を有することができる。
【0052】
[0078]
図3Bに示すように、最適画像の画像部分1126、この場合、鳥1126をレンダリングするディスプレイのエレメントのみを駆動して、ユーザーの目140の焦点領域が直接画像1126からの光に結合されるように、高解像度の画像を供給する。画像1126は、部分1126aによって取り囲まれ、画像1126、つまり、環境におけるユーザーの視野全体の最適画像の一部のみが
図3Bにおいてレンダリングされることを例示する。
【0053】
[0079]
図3cおよび
図3dは、本技術の他の代替実施形態2bを示す。
図3Dは、頭部装着ディスプレイ・デバイス2Dの上面図であり、
図3Cは側面図である。
図3Cおよび
図3Dにおいて、頭部装着ディスプレイ・デバイス2cは、サポート構造162、微小電気機械式エレメント160、161、163(および、図示しない第4微小電気機械式エレメント)、およびミラー166を含む。1つ以上のマイクロディスプレイ・エレメント170が、ミラー166に隣接して位置付けられており、エレメント170は、
図3Aに関して説明したディスプレイ120と同等であってもよい。ミラー166は、マイクロディスプレイ・エレメントからの放出をユーザーの目の焦点領域に誘導するために、微小機械式エレメント160、161、163によって、ディスプレイ構造162に対して移動させることができる。微小機械式エレメント160、161、163は、圧電エレメント、あるいはその他の機械的に制御されるエレメントまたは電気機械的に制御されるエレメントを備えるとよい。これらのエレメントを協同して用いると、ミラー166をサポート構造162に対して3本の移動軸に沿って位置付けることができる。マイクロディスプレイ153と同様に、微小電気機械式エレメント160〜163は、ミラーの各角において結合され、ユーザーの目140に対してミラーを三次元で位置決めする。つまり、ミラー166は、ディスプレイの中心点を中心として多数の回転軸「Z」および「X」、ならびにユーザーに目に対する垂直「V」および水平「L」配位を有する。尚、ミラー166の移動は、ユーザーの焦点領域内において画像の最適部分(この場合、鳥のイメージ1126)を位置決めするために、単独で用いることも、またはマイクロ・ディスプレイ・エレメントの指向性出力(directional output)と組み合わせて用いることもできることは、認められてしかるべきである。
【0054】
[0080]
図3A〜
図3Dは、頭部装着ディスプレイ・デバイス2a〜2cの半分のみを示す。頭部装着ディスプレイ・デバイス全体では、他の1組のレンズ、他の不透明フィルタ、他の導光光学エレメント、他のマイクロ・ディスプレイ、他のレンズ、部屋に面するカメラ、目追跡アセンブリー、マイクロ・ディスプレイ、イヤホン、および温度センサーが含まれる(該当する場合)。
【0055】
[0081]
図4Aは、頭部装着ディスプレイ・デバイス2a〜’2cの種々のコンポーネントを示すブロック図である。尚、時4Aに示すコンポーネントの一部は、
図3A〜
図3Dに示した各実施形態において、なくてもよいことは、
図3A〜
図3Dを参照すると理解されよう。
図4Bは、演算装置4の種々のコンポーネントを説明するブロック図である。頭部装着ディスプレイ・デバイス2は、そのコンポーネントが
図4Aに示されており、ユーザーに最適画像を表示するために用いられる。加えて、
図4Aの頭部装着ディスプレイ・デバイスのコンポーネントは、種々の状態を追跡する多くのセンサーを含む。頭部装着ディスプレイ・デバイス2a〜2cは、仮想画像についての命令を演算装置4から受け、逆にセンサー情報を演算装置4に提供する。演算装置4は、そのコンポーネントが
図4Bに示されており、頭部装着ディスプレイ2から、そしてハブ計算デバイス12(
図1参照)からもセンサー情報を受け取る。この情報に基づいて、演算装置4は、仮想画像をどこにそしていつユーザーに供給すべきか判断し、それに応じて命令を
図4Aの頭部装着ディスプレイ・デバイスに送る。
【0056】
[0082] 尚、
図4Aのコンポーネントの一部(例えば、後部境対面カメラ113、目追跡カメラ134B、マイクロ・ディスプレイ120、不透明フィルター114、目追跡照明134A、イヤホン130、および温度センサー138)は、これらのデバイスが各々2つずつあり、1つが頭部装着ディスプレイ・デバイス2の左側、そして1つが右側にあることを示すために、影を付けて(in shadow)図示されていることを注記しておく。
図4Aは、電力管理回路202と通信する制御回路200を示す。制御回路200は、プロセッサー210、メモリー214(例えば、D−RAM)と通信可能なメモリー・コントローラー212、カメラ・インターフェース216、カメラ・バッファー218、ディスプレイ・ドライバー220、ディスプレイ・フォーマッター222、タイミング・ジェネレーター226、ディスプレイ出力インターフェース228、およびディスプレイ入力インターフェース230を含む。一実施形態では、制御回路220のコンポーネントは全て、互いに、専用線または1つ以上のバスを介して通信する。他の実施形態では、制御回路200のコンポーネントは全て、プロセッサー210と通信する。カメラ・インターフェース216は、2つの部屋対面カメラ113にインターフェースを設け、部屋対面カメラから受け取った画像をカメラ・バッファー218に格納する。ディスプレイ・ドライバー220は、マイクロ・ディスプレイ120を駆動する。ディスプレイ・フォーマッター222は、マイクロ・ディスプレイ120上に表示されている仮想画像についての情報を、不透明フィルター114を制御する不透明制御回路224に提供する。タイミング・ジェネレーター226は、システムにタイミング・データーを供給するために用いられる。ディスプレイ出力インターフェース228は、部屋対面カメラ113から演算装置4に画像を供給するためのバッファーである。ディスプレイ入力230は、マイクロ・ディスプレイ120に表示しようとする仮想画像のような画像を受け取るためのバッファーである。ディスプレイ出力228およびディスプレイ入力230は、演算装置4に対するインターフェースである帯域インターフェース232と通信する。また、ディスプレイ・ドライバー220は、
図3Cおよび
図3Dの先の実施形態にしたがって合焦画像を表示するために、ミラー166を位置付けるようにミラー・コントローラ162を駆動することもできる。
【0057】
[0083] 電力管理回路202は、電圧レギュレーター234、目追跡照明ドライバー236、オーディオDACおよび増幅器238、マイクロフォン・プリアンプおよびオーディオADC240、温度センサー・インターフェース242、ならびにクロック・ジェネレーター244を含む。電圧レギュレーター234は、演算装置4から帯域インターフェース232を介して電力を受け、その電力を頭部装着ディスプレイ・デバイス2の他のコンポーネントに供給する。目追跡照明ドライバー236は、前述のように、IR光源を目追跡照明134Aのために設ける。オーディオDACおよび増幅器238は、オーディオ情報をイヤホン130から受け取る。マイクロフォン・プリアンプおよびオーディオADC240は、マイクロフォン110に対するインターフェースを設ける。温度センサー・インターフェース242は、温度センサー138に対するインターフェースである。また、電力管理ユニット202は、電力を供給し、三軸磁力計132A、三軸ジャイロ132B、および三軸加速度計132Cからは逆にデーターを受け取る。
【0058】
[0084]
図4Bは、演算装置4の種々のコンポーネントを説明するブロック図である。
図4Bは、電力管理回路306と通信する制御回路304を示す。制御回路304は、中央演算装置(CPU)320、グラフィクス処理ユニット(GPU)322、キャッシュ324、RAM326、メモリー330(例えば、D−RAM)と通信するメモリー制御部328、フラッシュ・メモリー334(または他のタイプの不揮発性ストレージ)と通信するフラッシュ・メモリー・コントローラー332、帯域インターフェース302および帯域インターフェース232を介して頭部装着ディスプレイ・デバイス2と通信するディスプレイ出力バッファー326、帯域インターフェース302および帯域インターフェース232を介して頭部装着ディスプレイ・デバイス2と通信するディスプレイ入力バッファー338、マイクロフォンに接続するために外部マイクロフォン・コネクター342と通信可能なマイクロフォン・インターフェース340、ワイヤレス通信デバイス346に接続するためのPCIエクスプレス・インターフェース、ならびにUSBポート(1つまたは複数)348を含む。一実施形態では、ワイヤレス通信コンポーネント346は、Wi−Fi対応通信デバイス、BlueTooth(登録商標)通信デバイス、赤外線通信デバイス等を含むことができる。USBポートは、演算装置4をハブ計算デバイス12にドッキングして、データーまたはソフトウェアを演算装置4にロードするため、および演算装置4を充電するために用いることができる。一実施形態では、CPU320およびGPU322は、どこに、いつ、そしてどのように仮想画像をユーザーの視野に挿入すべきか判断するための主要な機械(workhorse)である。これ以上の詳細は、以下で示す。
【0059】
[0085] 電力管理回路306は、クロック・ジェネレーター360、アナログ/ディジタル変換器362、バッテリー充電器364、電圧レギュレーター366、頭部装着ディスプレイ電源376、および温度センサー374(演算装置4の手首バンド上に配置されている)と通信可能な温度センサー・インターフェース372を含む。アナログ/ディジタル変換器362が、AC供給電力を受け、本システムのためにDC供給電力を発電するために、充電ジャック370に接続されている。電圧レギュレーター366は、本システムに電力を供給するために、バッテリー368と通信する。バッテリー充電器364は、充電ジャック370から受電すると、バッテリー368を充電する(電圧レギュレーター366を介して)ために用いられる。HMD電力インターフェース376は、電力を頭部装着ディスプレイ・デバイス2に供給する。
【0060】
[0086] 前述のシステムは、仮想画像が実世界物体の映像(view)と置き換わるように、ユーザーの視野内に仮想画像を挿入するように構成される。あるいは、仮想画像は、実世界物体の画像を置き換えることなく、挿入することもできる。種々の実施形態において、置き換えられる物体または画像が挿入されようとしている環境に基づいて、しかるべき向き、サイズ、および形状に一致するように、仮想画像を調節する。加えて、仮想画像は、反射(reflectivity)および影を含むように調節することができる。一実施形態では、頭部装着ディスプレイ・デバイス12、演算装置4、およびハブ計算デバイス12は、一緒に動作する。これは、これらのデバイスの各々が、どこに、いつ、そしてどのように仮想画像を挿入すべきか判断するためのデーターを得るために用いられるセンサーの一部(subset)を含むからである。一実施形態では、どこに、いつ、そしてどのように仮想画像を挿入すべきか判断する計算は、ハブ計算デバイス12が実行する。他の実施形態では、これらの計算は演算装置4によって実行される。他の実施形態では、これらの計算の一部はハブ計算デバイス12によって実行するが、他の計算は演算装置4によって実行する。他の実施形態では、これらの計算は頭部装着ディスプレイ・デバイス12によって実行することができる。
【0061】
[0087] 一実施形態例では、ハブ計算デバイス12は、ユーザーが存在する環境のモデルを作成し、その環境内において動いている種々の物体を追跡する。代替実施形態では、環境において関心のある物体およびユーザーを、他の手段によって判定する。加えて、ハブ計算デバイス12は、頭部装着ディスプレイ・デバイス2の位置および向きを追跡することによって、頭部装着ディスプレイ・デバイス2の視野を追跡する。モデルおよび追跡情報を、ハブ計算デバイス12から演算装置4に供給する。頭部装着ディスプレイ・デバイス2によって得られたセンサー情報を、演算装置4に送信する。すると、演算装置4は、頭部装着ディスプレイ・デバイス2からそれが受け取った追加のセンサー情報を用いて、ユーザーの視野を厳密に定め、どのように、どこに、そしていつ仮想画像を挿入すべきかについての命令を頭部装着ディスプレイ・デバイス2に供給する。
【0062】
[0088]
図5は、ハブ計算システム12の一実施形態例を、キャプチャー・デバイスと共に示す。一実施形態では、キャプチャー・デバイス20Aおよび20Bは同じ構造であり、したがって、
図5はキャプチャー・デバイス20Aのみを示す。一実施形態例によれば、キャプチャー・デバイス20Aは、深度値を含むこともできる深度画像を含む深度情報によって、いずれかの適した技法によってビデオを取り込むように構成するとよい。適した技法には、例えば、飛行時間、構造化光、ステレオ撮像等が含まれる。一実施形態によれば、キャプチャー・デバイス20Aは、深度情報を「Zレイヤー」に編成することができる。即ち、深度カメラからその見通し線に沿って延びるZ軸に対して垂直であるとよいレイヤーに編成することができる。
【0063】
[0089]
図5に示すように、キャプチャー・デバイス20Aはカメラ・コンポーネント423を含むことができる。一実施形態例によれば、カメラ・コンポーネント423は、場面の深度画像を取り込むことができる深度カメラであってもよく、またはこの深度カメラを含むのでもよい。深度画像は、取り込まれた場面の二次元(2−D)画素エリアを含むことができ、この2−D画素エリアにおける各画素は、カメラからの取り込まれた場面における物体の距離というような深度値を、例えば、センチメートル、ミリメートル等を単位として表すことができる。
【0064】
[0090] カメラ・コンポーネント23は、赤外線(IR)発光コンポーネント425、三次元(3D)カメラ426、および場面の深度画像を取り込むために用いることができるRGB(視覚画像)カメラ428を含むことができる。例えば、飛行時間分析では、キャプチャー・デバイス20AのIR発光コンポーネント425は、キャプチャー・エリアに向けて赤外線光を出すことができ、次いでセンサー(実施形態の中には、図示されていないセンサーを含む場合もある)を用いて、その場面内にある1つ以上のターゲットおよび物体の表面からの後方散乱光を、例えば、3Dカメラ426および/またはRGBカメラ428を用いて検出することができる。実施形態の中には、パルス状赤外線光を用いて、発射光パルスと対応する入射光パルスとの間の時間を測定し、キャプチャー・デバイス20Aから場面内にあるターゲットまたは物体上における特定の場所までの物理的距離を判定するために用いられるようにするとよい場合がある。加えて、他の実施形態例では、発射光波の位相を着信光波の位相と比較して、位相ずれを判定することもできる。次いで、この位相ずれを用いて、キャプチャー・デバイスからターゲットまたは物体上の特定の場所までの物理的距離を判定することができる。
【0065】
[0091] 他の一実施形態例によれば、飛行時間分析を用いて、例えば、散乱光パルス撮像(shuttered light pulse imaging)を含む種々の技法によって、経時的な光の反射ビームの強度を分析することによって、キャプチャー・デバイス20Aからターゲットまたは物体上の特定の位置までの物理的距離を間接的に判定することができる。
【0066】
[0092] 他の一実施形態例では、キャプチャー・デバイス20Aは、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン光(即ち、格子パターン、縞パターン、または異なるパターンのような既知のパターンとして表示される光)を、例えば、IR発光コンポーネント424によって、場面に向けて投射する。場面において1つ以上のターゲットまたは物体の表面に衝突したときに、それに応答して、パターンが変形すると考えられる。このようなパターンの変形を、例えば、3Dカメラ426および/またはRGBカメラ428(および/または他のセンサー)によって取り込むことができ、次いで分析して、キャプチャー・デバイスからターゲットまたは物体上における特定の位置までの物理的距離を判定することができる。実施態様の中には、IR発光コンポーネント425をカメラ425および426から変位させて、カメラ425および426からの距離を判定するために三角測量法を用いることができるようにしたものもある。実施態様の中には、キャプチャー・デバイス20Aが、IR光を検知するために専用のIRセンサー、またはIRフィルターを有するセンサーを含む場合もある。
【0067】
[0093] 他の実施形態によれば、キャプチャー・デバイス20Aは、2つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度から場面を捕らえて、視覚的な立体データーを得て、これを解明することによって深度情報を生成することができる。他のタイプの深度画像センサーも、深度画像を形成するために用いることができる。
【0068】
[0094] 更に、キャプチャー・デバイス20Aは、マイクロフォン430も含むことができる。マイクロフォン430は、音を受けて電気信号に変換することができる変換器またはセンサーを含む。マイクロフォン430は、オーディオ信号を受け取るために用いることもできる。オーディオ信号は、ハブ計算デバイス12によって供給することもできる。
【0069】
[0095] 一実施形態例では、キャプチャー・デバイス20Aは、更に、撮像カメラ・コンポーネント423と通信することができるプロセッサー432も含むことができる。プロセッサー432は、標準的なプロセッサー、特殊プロセッサー、マイクロプロセッサー等を含むことができ、例えば、深度画像を受け取る命令、しかるべきデーター・フォーマット(例えば、フレーム)を生成する命令、およびデーターをハブ計算デバイス12に送信する命令を含む命令を実行することができる。
【0070】
[0096] キャプチャー・デバイス20Aは、更に、プロセッサー432が実行する命令、3−Dカメラおよび/またはRGBカメラによって取り込まれた画像または画像のフレーム、あるいは他の適した情報、画像等であればいずれでも格納することができるメモリー434も含むことができる。一実施形態例によれば、メモリー434は、ランダム・アクセス・メモリー(RAM)、リード・オンリー・メモリー(ROM)、キャッシュ、フラッシュ・メモリー、ハード・ディスク、または他の適した記憶コンポーネントであればいずれでも含むことができる。
図5に示すように、一実施形態では、メモリー434は、画像キャプチャー・コンポーネント423およびプロセッサー432と通信する別個のコンポーネントであってもよい。他の実施形態によれば、メモリー434をプロセッサー432および/または画像キャプチャー・コンポーネント422に統合してもよい。
【0071】
[0097] キャプチャー・デバイス20Aおよび20Bは、通信リンク436を介して、ハブ計算デバイス12と通信することができる。通信リンク436は、例えば、USB接続、Firewire接続、イーサネット(登録商標)・ケーブル接続等を含む有線接続、および/またはワイヤレス802.1b、g、a、またはn接続というようなワイヤレス接続とすることができる。一実施形態によれば、ハブ計算デバイス12は、クロックをキャプチャー・デバイス20Aに供給することができる。このクロックは、例えば、通信リンク436を介して場面を取り込むときを決定するために用いることができる。加えて、キャプチャー・デバイス20Aは、例えば、3−Dカメラ426および/またはRGBカメラ428によって取り込まれた深度情報ならびに視覚(例えば、RGB)画像をハブ計算デバイス12に、通信リンク436を介して供給する。一実施形態では、深度画像および視覚画像は、毎秒30フレームで送られる。しかしながら、他のフレーム・レートも用いることができる。次いで、ハブ計算デバイス12はモデルを作成し、このモデル、深度情報、および取り込まれた画像を用いて、例えば、ゲームまたはワード・プロセッサーのようなアプリケーションを制御すること、および/またはアバターまたは画面上のキャラクターを動画化することができる。
【0072】
[0098] ハブ計算システム12は、深度画像処理および骨格追跡モジュール450を含む。このモジュール450は、深度画像を用いて、キャプチャー・デバイス20Aの深度カメラ機能によって検出可能な1人以上の人を追跡する。深度画像処理および骨格追跡モジュール450は、追跡情報をアプリケーション452に提供する。アプリケーション452は、ビデオ・ゲーム、生産性アプリケーション、通信アプリケーション、または他のソフトウェア・アプリケーション等とすることができる。また、オーディオ・データーおよびビジュアル画像データーも、アプリケーション452および深度画像処理および骨格追跡モジュール450に供給する。アプリケーション452は、追跡情報、オーディオ・データー、およびビジュアル画像データーを認識エンジン454に供給する。他の実施形態では、認識エンジン454は、追跡情報を直接深度画像処理および骨格追跡モジュール450から受け取り、オーディオ・データーおよびビジュアル画像データーを直接キャプチャー・デバイス20Aおよび20Bから受け取る。
【0073】
[0099] 認識エンジン454は、フィルター460、462、464、...、466の集合体と関連付けられている。各フィルターは、キャプチャー・デバイス20Aまたは20Bによって検出可能なあらゆる人あるいは物体によって行うことができるジェスチャー、行為、または状態に関する情報を含む。例えば、キャプチャー・デバイス20Aからのデーターは、フィルター460、462、464、...、466によって処理して、ユーザーまたはユーザーのグループが1つ以上のジェスチャーまたは他の行為を行ったときを特定することができる。これらのジェスチャーには、アプリケーション452の種々の制御、物体、または条件と関連付けることもできる。つまり、ハブ計算デバイス12は、これらのフィルターと共に認識エンジン454を用いて、物体(人を含む)の動きを解釈し追跡することができる。
【0074】
[00100] キャプチャー・デバイス20Aおよび20Bは、RGB画像(あるいは他のフォーマットまたは色空間における視覚画像)および深度画像を、ハブ計算デバイス12に供給する。深度画像は、複数の被観察画素とすることもでき、各被観察画素は観察画素値を有する。例えば、深度画像は、取り込まれた場面の二次元(2−D)画素エリアを含むことができ、この2−D画素エリアにおける各画素は、取り込まれた場面における物体のキャプチャー・デバイスからの距離というような、深度値を有することができる。ハブ計算デバイス12は、RGB画像および深度画像を用いて、ユーザーまたは物体の動きを追跡する。例えば、本システムは、深度画像を用いて人の骨格を追跡する。深度画像を用いて人の骨格を追跡するために用いることができる方法は、数多くある。深度画像を用いて骨格を追跡するのに適した一例が、2009年10月21日に出願されたCraig, et al.の米国特許出願第12/603,437号、"Pose Tracking Pipeline"(姿勢追跡パイプライン)に示されている(以後、’437出願と呼ぶ)。この出願をここで引用したことにより、その内容全体が本願にも含まれるものとする。’437出願のプロセスは、深度画像を取り込み、データーをダウン・サンプリングするステップと、高分散ノイズ・データー(high variance noisy data)を除去および/またはスムージングするステップと、背景を特定および除去するステップと、前景画素の各々を身体の異なる部分に指定するステップを含む。これらのステップに基づいて、本システムは、モデルをこのデーターに当てはめ、骨格を形成する。この骨格は、1組の関節と、これらの関節間にある接続とを含む。他の追跡方法を用いることもできる。また、適した追跡技術が以下の4件の米国特許出願にも開示されている。その全てをここで引用することにより、その内容全体が本願にも含まれるものとする。2009年5月29日に出願された米国特許出願第12/475,308号、"Device for Identifying and Tracking Multiple Humans Over Time"(複数の人間を経時的に特定および追跡するデバイス)、2010年1月29日に出願された米国特許出願第12/696,282号、"Visual Based Identity Tracking"(外見に基づく識別追跡)、2009年12月18日に出願された米国特許第12/641,788号、"Motion Detection Using Depth Images"(深度画像を用いた動き検出)、および2009年10月7日に出願された米国特許第12/575,388号、"Human Tracking System"(人間追跡システム)。
【0075】
[00101] 認識エンジン454は、ジェスチャーまたは行為を判定するために複数のフィルター460、462、464、...、466を含む。フィルターは、ジェスチャー、行為、または状態を定義する情報を、そのジェスチャー、行為、または状態についてのパラメーター、またはメタデーターと共に含む。例えば、投げる動作は、一方の手が身体の背後から身体の前方を通過する動きを含み、その動きが深度カメラによって取り込まれると、ユーザーの一方の手が身体の背後から身体の前方を通過する動きを表す情報を含むジェスチャーとして実現することができる。次いで、このジェスチャーに対してパラメーターを設定することができる。ジェスチャーが投げる動作である場合、パラメーターは、手が達しなければならない閾値速度、手が移動する距離(ユーザー全体のサイズに対して絶対的、または相対的のいずれか)、および認識エンジンによる、ジェスチャーが行われたことの信頼度格付けとするとよい。ジェスチャーに対するこれらのパラメーターは、アプリケーション間、1つのアプリケーションのコンテキスト間、または1つのアプリケーションの1つのコンテキスト内においてときの経過に連れて様々に変化するのであってもよい。
【0076】
[00102] フィルターは、モジュール状または相互交換可能であるとよい。一実施形態では、フィルターは、複数の入力(これらの入力の各々はある型を有する)と、複数の出力(これらの出力の各々はある型を有する)とを有する。認識エンジンのアーキテクチャーの他の態様を全く変更することなく、第1のフィルターを、この第1のフィルターと同じ数および同じ型の入力と出力とを有する第の2フィルターと交換することができる。例えば、入力として骨格データーを取り込み、そのフィルターと関連するジェスチャーが行われている確実度と、操縦角度とを出力する駆動用第1フィルターがあってもよい。おそらくは第2駆動フィルターの方が効率的であり必要な処理リソースが少なくて済むために、この第1駆動フィルターを第2駆動フィルターと交換したい場合、第2フィルターが同じ入力および出力、即ち、骨格データー型である1つの入力と、確実度型および角度型である2つの出力を有する限り、単に第1フィルターを第2フィルターと交換することによって、そうすることができる。
【0077】
[00103] フィルターがパラメーターを有する必要はない。例えば、ユーザーの身長を戻す「ユーザー身長」フィルターが、調整することができるパラメーターを全く考慮しなくてもよい。代わりの「ユーザー身長」フィルターが、ユーザーの身長を判定するときに、ユーザーの靴、髪形、帽子、および姿勢を考慮に入れるべきか否かというような、調整可能なパラメーターを有してもよい。
【0078】
[00104] フィルターへの入力は、関節において合体する骨によって形成される角度のような、ユーザーの関節位置についての関節データー、場面からのRGBカラー・データー、およびユーザーの態様の変化率というような事項を含むことができる。フィルターからの出力は、所与のジェスチャーが行われる確実度、ジェスチャーの動きが行われる速度、およびジェスチャーの動きが行われた時刻というような事項を含むことができる。
【0079】
[00105] 認識エンジン454は、前述のフィルターに機能を設ける基本認識エンジンを有することができる。一実施形態では、認識エンジン454が実装する機能は、認識されたジェスチャーおよび他の入力を追跡する経時的入力アーカイブ、隠れマルコフ・モデルの実装(モデル化されるシステムは、未知のパラメーターを有するマルコフ・プロセスであると仮定する。このプロセスでは、現在の状態が、今後の状態を判定するために必要なあらゆる過去の状態情報をカプセル化するので、この目的のために他の過去の状態情報を維持しなくてもよく、隠れているパラメーターを、観察可能なデーターから判定する)、およびジェスチャー認識の特定の場合(instance)を解決するために必要とされる他の機能を含む。
【0080】
[00106] フィルター460、462、464、...、466は、認識エンジン454の上にロードされ実装され、認識エンジン454によって全てのフィルター460、462、464、...、466に提供されるサービスを利用することができる。一実施形態では、認識エンジン454は、いずれかのフィルター460、462、464、...、466の要件を満たすか否か判断するためにデーターを受け取る。入力の解析というような、これらの提供されるサービスは、各フィルター460、462、464、...、466によってではなく、認識エンジン454によって1回提供されるので、このようなサービスは、ある時間期間に1回だけ処理されればよいのであって、その期間においてフィルター毎に1回ずつ処理されるのではない。したがって、ジェスチャーを判定するために用いられる処理が少なくなる。
【0081】
[00107] アプリケーション452は、認識エンジン454に設けられたフィルター460、462、464、...、466を用いることができ、またはそれ自体のフィルターを設けることもできる。このフィルターは、認識エンジン454に差し込まれる。一実施形態では、全てのフィルターは、この差し込み特性を可能にするために、共通のインターフェースを有する。更に、全てのフィルターはパラメーターを利用することができるので、以下の1つのジェスチャー・ツールを用いて、フィルター・システム全体のデバッグおよび調整(tune)を行うことができる。
【0082】
[00108] 認識エンジン454についてのこれ以上の情報は、2009年4月13日に出願された米国特許出願第12/422,661号、"Gesture Recognizer System Architecture"(ジェスチャー認識システムのアーキテクチャー)において見いだすことができる。この特許出願をここで引用したことにより、その内容全体が本願にも含まれるものとする。ジェスチャー認識についてのこれ以上の情報は、2009年2月23日に出願された米国特許出願第12/391,150号、"Standard Gestures"(標準的ジェスチャー)、および2009年5月29日に出願された米国特許第12/474,655号、"Gesture Tool"(ジェスチャー・ツール)において見いだすことができる。これら双方の特許出願をここで引用したことにより、それらの内容全体が本願にも含まれるものとする。
【0083】
[00109] 一実施形態では、計算システム12は、ハブ計算システム12と相互作用する1人以上のユーザーに関するユーザー特定情報を含むユーザー・プロファイル・データーベース470を含む。一例では、ユーザー特定情報は、ユーザーの表現した好み、ユーザーの友人のリスト、ユーザーが好む活動、ユーザーの備忘録のリスト、ユーザーのソーシャル・グループ、ユーザーの現在地、ユーザーの環境ならびにユーザーの写真、画像、および記録ビデオというような、その他のユーザー作成コンテンツにおける物体と相互作用したユーザーの過去の意図というような、ユーザーに関する情報を含む。一実施形態では、ユーザー特定情報は、ユーザーのソーシャル・ネットワーキング・サイト、住所録、電子メール・データー、インスタント・メッセージング・データー、ユーザー・プロファイル、またはインターネット上の他のソースというような、1つ以上のデーター・ソースから得ることができる。1つの手法では、そして以下で詳細に論ずるように、ユーザー特定情報は、ユーザーの環境において1つ以上の物体と相互作用するユーザーの意図を自動的に判定するために利用される。
【0084】
[00110]
図6は、ハブ計算デバイス12を実現するために用いることができる計算システムの一実施形態例を示す。
図6に示すように、マルチメディア・コンソール500は、中央演算装置(CPU)501を有する。CPU501は、レベル1(L1)キャッシュ502、レベル2(L2)キャッシュ504、およびフラッシュROM(リード・オンリー・メモリー)506を有する。レベル1キャッシュ502およびレベル2キャッシュ504は、一時的にデーターを格納し、したがってメモリー・アクセス・サイクル回数を減らすことによって、処理速度およびスループットを向上させる。CPU501は、1つよりも多いコア、つまり追加のレベル1およびレベル2キャッシュ502および504を有するものが、設けられてもよい。フラッシュROM506は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール500に最初に電力を投入するときのブート・プロセスの初期フェーズの間にロードされる。
【0085】
[00111] グラフィクス処理ユニット(GPU)508およびビデオ・エンコーダー/ビデオ・コデック(コーダー/デコーダー)514は、高速および高分解能グラフィクス処理のためのビデオ処理パイプラインを形成する。データーは、グラフィクス処理ユニット508からビデオ・エンコーダー/ビデオ・コデック514に、バスを通じて搬送される。ビデオ処理パイプラインが、テレビジョンまたはその他の表示装置への送信のために、データーをA/V(オーディオ/ビデオ)ポート540に出力する。メモリー・コントローラー510がGPU508に接続されており、限定ではないが、RAM(ランダム・アクセス・メモリー)のような、種々の形式のメモリー512にプロセッサーがアクセスし易くする。
【0086】
[00112] マルチメディア・コンソール500は、I/Oコントローラー520、システム管理コントローラー522、オーディオ処理ユニット523、ネットワーク・インターフェース・コントローラー524、第1USBホスト・コントローラー526、第2USBコントローラー528、およびフロント・パネルI/Oサブアセンブリー530を含む。これらは、モジュール518上に実装することが好ましい。USBコントローラー526および528は、ペリフェラル・コントローラー542(1)〜542(2)、ワイヤレス・アダプター548、および外部メモリー・ユニット546(例えば、フラッシュ・メモリー、外部CD/DVD ROMドライブ、リムーバブル・メディア等)のホストとしての役割を果たす。ネットワーク・インターフェース524および/またはワイヤレス・アダプター548は、ネットワーク(例えば、インターネット、ホーム・ネットワーク等)へのアクセスを与え、イーサネット(登録商標)・カード、モデム、Bluetooth(登録商標)モジュール、ケーブル・モデム等を含む、多種多様の様々な有線またはワイヤレス・アダプター・コンポーネントの内いずれでもよい。
【0087】
[00113] システム・メモリー543は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ544が設けられており、DVD/CDドライブ、ブルー・レイ・ドライブ、ハード・ディスク・ドライブ、またはその他のリムーバブル・メディア・ドライブ等を含むことができる。メディア・ドライブ144は、マルチメディア・コンソール500の内部でも外部でもよい。マルチメディア・コンソール500による実行、再生(playback)等のために、マルチメディア・コンソール500はアプリケーション・データー544にアクセスすることができる。メディア・ドライブ544は、シリアルATAバスまたはその他の高速接続(例えば、IEEE1394)のようなバスを通じて、I/Oコントローラー520に接続されている。
【0088】
[00114] システム管理コントローラー522は、マルチメディア・コンソール500の利用可能性を確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット523およびオーディオ・コデック532は、高信頼度およびステレオ・オーディオ処理を備えた、対応するオーディオ処理パイプラインを形成する。通信リンクが、オーディオ処理ユニット523とオーディオ・コデック526との間において、オーディオ・データーを伝達することができる。オーディオ処理パイプラインは、外部オーディオ・ユーザーまたはオーディオ能力を有するデバイスによる再生のために、A/Vポート540にデーターを出力する。
【0089】
[00115] フロント・パネルI/Oサブアセンブリー530は、電力ボタン550およびイジェクト・ボタン552の機能をサポートし、更にマルチメディア・コンソール500の外面上に露出するあらゆるLED(発光ダイオード)またはその他のインディケーターの機能もサポートする。システム電源モジュール536は、電力をマルチメディア・コンソール100のコンポーネントに供給する。ファン538は、マルチメディア・コンソール500内部にある回路を冷却する。
【0090】
[00116] CPU501、GPU508、メモリー・コントローラー510、およびマルチメディア・コンソール500内部にある種々の他のコンポーネントは、1つ以上のバスによって相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、ペリフェラル・バス、ならびに種々のバス・アーキテクチャーの内いずれかを用いたプロセッサー・バスまたはローカル・バスが含まれる。一例として、このようなアーキテクチャーは、周辺コンポーネント相互接続(PCI)バス、PCI−Expressバス等を含むことができる。
【0091】
[00117] マルチメディア・コンソール500に電源を投入すると、アプリケーション・データーをシステム・メモリー543からメモリー512および/またはキャッシュ502、504にロードすることができ、CPU501において実行することができる。アプリケーションは、マルチメディア・コンソール500において利用可能な異なるメディア・タイプにナビゲートするときに、一貫性のあるユーザー体験を提供するグラフィカル・ユーザー・インターフェースを提示することができる。動作において、アプリケーションおよび/またはメディア・ドライブ544内に含まれているその他のメディアをメディア・ドライブから起動または再生して、追加の機能をマルチメディア・コンソール500に提供することもできる。
【0092】
[00118] マルチメディア・コンソール500は、単に単体システムをテレビジョンまたはその他のディスプレイに接続することによって、その単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール500は、1人以上のユーザーがシステムと相互作用すること、ムービーを見ること、音楽を聞くこと等を可能にする。しかしながら、ネットワーク・インターフェース524またはワイヤレス・アダプター548を通じて利用可能なブロードバンド接続の統合により、マルチメディア・コンソール500は、更に、それよりも大きなネットワーク共同体における参加者として動作することができる。加えて、マルチメディア・コンソール500は、演算装置4とワイヤレス・アダプター548を介して通信することができる。
【0093】
[00119] マルチメディア・コンソール500の電源をオンにすると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー、CPUおよびGPUサイクル、ネットワーキング帯域幅等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを含めるのに十分大きいことが好ましい。確保されたCPUの使用がそのシステム・アプリケーションによって用いられない場合、アイドル状態にあるスレッドが未使用サイクルの内いずれかを消費するように、CPUの確保を一定に維持することが好ましい。
【0094】
[00120] GPUの確保に関して、GPU割り込みを用いることによって、システム・アプリケーション(例えば、ポップアップ)によって生成される軽量メッセージを表示して、ポップアップをオーバーレイにレンダリングするコードをスケジューリングする。オーバーレイに必要とされるメモリー量は、オーバーレイのエリア・サイズに依存し、オーバーレイは画面の解像度と共にスケーリングする(scale)ことが好ましい。コンカレント・システム・アプリケーションによってユーザー・インターフェース全体が用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更しTVの同期を取り直す必要性をなくすように、スケーラーを用いてこの解像度を設定するとよい。
【0095】
[00121] マルチメディア・コンソール500がブートして、システム・リソースが確保された後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。これらのシステム機能は、前述の確保したシステム・リソースの内部で実行する1組のシステム・アプリケーション内にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、ゲーミング・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点および間隔でCPU501において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソールにおいて実行しているゲーミング・アプリケーションに対するキャッシュの分裂(disruption)を最少に抑えるためにある。
【0096】
[00122] コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、オーディオ処理を非同期にゲーミング・アプリケーションにスケジューリングする。マルチメディア・コンソール・アプリケーション管理部(以下で説明する)は、システム・アプリケーションがアクティブのとき、ゲーミング・アプリケーションのオーディオ・レベル(例えば、無音化、減衰)を制御する。
【0097】
[00123] 任意選択肢の入力デバイス(例えば、コントローラー542(1)および542(2))は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されたリソースではないが、システム・アプリケーションとゲーミング・アプリケーションとの間で切り換えられて、各々がそのデバイスのフォーカス(a focus of the device)を有するようにする。アプリケーション管理部は、好ましくは、ゲーミング・アプリケーションの知識を知ることなく、入力ストリームの切換を制御し、ドライバーがフォーカス・スイッチ(focus switches)に関する状態情報を維持する。キャプチャー・デバイス20Aおよび20Bは、コンソール500のための追加の入力デバイスを、USBコントローラー526または他のインターフェースを介して、定めることができる。他の実施形態では、ハブ計算システム12は、他のハードウェア・アーキテクチャーを用いて実現することができる。ハードウェア・アーキテクチャーが1つである必要はない。
【0098】
[00124]
図1は、1つのハブ計算デバイス12(ハブと呼ぶ)と通信する1つの頭部装着ディスプレイ・デバイス2および演算装置4(纏めて移動体ディスプレイ・デバイスと呼ぶ)を示す。他の実施形態では、複数の移動体ディスプレイ・デバイスが1つのハブと通信することができる。これらの移動体ディスプレイ・デバイスの各々は、前述のように、ワイヤレス通信を用いてハブと通信する。このような実施形態では、移動体ディスプレイ・デバイスの全てに有用である情報の多くが、ハブにおいて計算および格納され、移動体ディスプレイ・デバイスの各々に送られることが考えられる。例えば、ハブは環境のモデルを生成し、ハブと通信する移動体ディスプレイ・デバイスの全てにこのモデルを供給する。加えて、ハブは、移動体ディスプレイ・デバイスの位置および向きを追跡し、更に部屋内において動いている物体の位置および向きを追跡し、その情報を移動体ディスプレイ・デバイスの各々に転送することができる。
【0099】
[00125] 他の実施形態では、システムが多数のハブを含むことができ、各ハブが1つ以上の移動体ディスプレイ・デバイスを含む。これらのハブは、互いに直接またはインターネット(または他のネットワーク)を介して通信することができる。例えば、
図7はハブ560、562、および564を示す。ハブ560は、直接ハブ562と通信する。ハブ560は、ハブ564とインターネットを介して通信する。ハブ560は、移動体ディスプレイ・デバイス570、572、...、574と通信する。ハブ562は、移動体ディスプレイ・デバイス578、580、...、582と通信する。ハブ564は、移動体ディスプレイ・デバイス584、586、...、588と通信する。先に論じたように、移動体ディスプレイ・デバイスの各々は、それらそれぞれのハブと、ワイヤレス通信を介して通信する。これらのハブが共通の環境にある場合、これらのハブの各々は環境のモデルの一部を設けることができ、または1つのハブが他のハブのためにモデルを作成することができる。これらのハブの各々は、動いている物体の一部(subset)を追跡し、その情報を他のハブと共有する。一方、他のハブは、しかるべき移動体ディスプレイ・デバイスとこの情報を共有する。移動体ディスプレイ・デバイスについてのセンサー情報が、それらそれぞれのハブに提供され、次いで他のハブに分配され、最終的に他の移動体ディスプレイ・デバイスに分配される。つまり、ハブ間で共有される情報は、骨格追跡、モデルについての情報、アプリケーションの種々の状態、およびその他の追跡を含むことができる。ハブおよびそれらそれぞれの移動体ディスプレイ・デバイス間で伝えられる情報には、動いている物体の追跡情報、世界モデルについての状態および物理的更新(physics updates)、幾何学的形状および表面模様の情報、ビデオおよびオーディオ、ならびに本明細書において記載される動作を実行するために用いられる他の情報が含まれる。
【0100】
[00126]
図8は、頭部装着ディスプレイ・デバイスのユーザーに提示する可視化情報の表示を最適化するプロセスの一実施形態を説明する。
図8は、先の
図2Aにおけるステップ32を実行する一実施形態を示す。
【0101】
[00127] ステップ600において、システム10を構成する。例えば、アプリケーション(
図5のアプリケーション452)が、場面の三次元モデルにおける指定位置に最適画像を挿入することを示すように、本システムを構成することができる。他の例では、ハブ計算システム12上で実行するアプリケーションが、ビデオ・ゲームまたは他のプロセスの一部として拡張コンテンツ(特定の仮想画像または仮想物体というような)を場面内に挿入するように指示する。
【0102】
[00128] ステップ602において、本システムは、頭部装着ディスプレイ・デバイス2を配置する空間の立体モデルを作成する。一実施形態では、例えば、ハブ計算デバイス12は、1つ以上の深度カメラからの深度画像を用いて、頭部装着ディスプレイ・デバイス2を配置する環境または場面の三次元モデルを作成する。ステップ604において、このモデルを1つ以上の物体に区分する。例えば、ハブ計算デバイス12が部屋の三次元モデルを作成する場合、この部屋はその内部に多数の物体を有することがありそうに思われる。部屋の中にある可能性がある物体の例には、人、椅子、テーブル、ソファ等が含まれる。ステップ604は、別個の物体を互いから区別することを含む。ステップ606において、本システムはこれらの物体を特定する。例えば、ハブ計算デバイス12は、1つの特定の物体がテーブルであり、他の物体が椅子であることを特定することができる。
【0103】
[00129] 尚、一実施形態では、立体モデルを作成し物体を特定することは、本技術で用いてもよいが、ステップ602〜608は、代替実施形態では、省略してもよいことは認められてしかるべきである。代替実施形態では、最適画像の生成は、環境1100を参照せずに行うこともでき、周囲の環境を参照せずに用いるためのオーバーレイ画像を供給することを含むのでもよい。即ち、本技術は、オーバーレイ画像の使用を必要とせず、ユーザーの環境を参照せずに、画像のみをユーザーに表示するために用いることができるという利点がある。
【0104】
[00130]
図8のステップ608において、本システムは、ユーザー空間のモデルに基づいて、ユーザーの視野を判定する。一実施形態では、ステップ608は、
図2Aのステップ32と同等である。即ち、本システムは、ユーザーが見ている環境または空間を判定する。一実施形態では、ステップ608は、ハブ計算デバイス12、演算装置4、および/または頭部装着ディスプレイ・デバイス2を用いて実行することができる。一実施態様例では、ハブ計算デバイス12がユーザーおよび頭部装着ディスプレイ・デバイス2を追跡して、頭部装着ディスプレイ・デバイス2の位置および向きについて暫定的な判定を行う。頭部装着ディスプレイ・デバイス2上にあるセンサーを用いて、判定した向きを厳密に定める。例えば、先に説明した慣性センサー34は、頭部装着ディスプレイ・デバイス2の向きを厳密に定めるために用いることができる。加えて、以下で説明する目追跡プロセスも、最初に判定した視野の内、特にユーザーが見ているところ、あるいは視野においてユーザーの焦点領域または深度焦点として把握したところに対応する一部(subset)を特定するために用いることができる。これ以上の詳細については、
図11〜
図13に関して以下で説明する。
【0105】
[00131] ステップ610において、演算装置4において実行するソフトウェアというような本システムは、ユーザーの視野内においてユーザーの現焦点領域を判定する。一実施形態では、ステップ610は、
図2Aのステップ34と同等である。
図12および
図13において以下で更に論ずるが、目毎に目追跡カメラ134によって取り込まれたデーターに基づく目追跡処理によって、ユーザーの現在の焦点領域を規定することができる。例えば、瞳間の収斂(convergence)は、ユーザーの顔の位置を示すデーターと共に、焦点曲線、即ち、ホロプター上の焦点距離まで三角測量するために用いることができる。焦点領域、即ち、パナムの融合エリアは、この焦点から計算することができる。パナムの融合エリアとは、人間の目によって用いられる両眼立体視に対する単一視のエリアである。
【0106】
[00132] ステップ612において、ソフトウェアの制御の下で、演算装置4は、単独でまたはハブ計算デバイス12と協同して、最適画像を生成する。この最適画像は、三次元モデル、検出された視野内の物体、およびユーザーの視野に基づく。
【0107】
[00133] 最適画像は、この最適画像の生成を制御するアプリケーションに応じて、多くの形態をなすことができる。更に、画像という用語は、動きの画像(motion image)、つまり、表示されている1つまたは複数の物体の動きを表示する画像を含む場合もあることは、言うまでもない。
【0108】
[00134] 次いで、頭部装着ディスプレイ・デバイス2のユーザーは、頭部装着ディスプレイ・デバイス2に表示された最適画像に基づいて、ハブ計算デバイス12(または他の計算デバイス)上で実行しているアプリケーションと相互作用を行う。
図8の処理ステップ(608〜612)は、ユーザーが彼または彼女の頭部を動かすに連れてユーザーの視野および焦点領域を更新し、新たな視野からの新たな最適画像を判定し、ユーザーの意図に基づいて最適画像をユーザーに表示するように、本システムの動作中に連続して実行することができる。ステップ604〜612の各々については、以下で詳細に説明する。
【0109】
[00135]
図9は、ユーザーの空間のモデルを作成するプロセスの一実施形態を説明する。例えば、
図9のプロセスは、
図8のステップ602の一実施態様例である。ステップ620において、ハブ計算デバイス12は頭部装着ディスプレイ・デバイス2が存在する空間の、
図1に示したもののような、多数の視線(perspective)に対する1つ以上の深度画像を受け取る。例えば、ハブ計算デバイス12は、多数の深度カメラから深度画像を得ることができ、あるいはカメラを異なる方向に向けることによって、またはモデルを構築する空間の全視野(full view)を可能にするレンズを有する深度カメラを用いることによって、同じカメラから複数の深度画像を得ることができる。ステップ622において、種々の深度画像からの深度データーを共通座標系に基づいて組み合わせる。例えば、このシステムが深度画像を多数のカメラから受け取る場合、本システムは2つの画像を相関付けて共通の座標系を有する(例えば、画像を並べる)。ステップ624において、深度データーを用いて、空間の立体記述を作成する。
【0110】
[00136]
図10は、空間のモデルを物体に区分するプロセスの一実施形態を説明するフローチャートである。例えば、
図10のプロセスは、
図8のステップ604の一実現例である。
図10のステップ626において、本システムは、先に論じたように、1つ以上の深度画像を1つ以上の深度カメラから受け取る。あるいは、本システムは、既に受け取っている1つ以上の深度画像にアクセスすることもできる。ステップ628において、本システムは、1つ以上の仮想画像を前述したカメラから受け取る。あるいは、本システムは、既に受け取られている1つ以上の仮想画像にアクセスすることもできる。ステップ630において、ハブ計算システム12は、深度画像および/または視覚画像に基づいて1人以上の人を検出する。例えば、本システムは1つ以上の骨格を認識する。ステップ632において、ハブ計算デバイス12は、深度画像および/または視覚画像に基づいてモデル内で縁端を検出する。ステップ634において、ハブ計算デバイス12は、検出した縁端を用いて、別個の物体を互いから識別する。例えば、縁端が物体間の境界であると仮定する。ステップ636において、モデルのどの部分が異なる物体と関連付けられているかを示すために、
図9のプロセスを用いて作成したモデルを更新する。
【0111】
[00137]
図11は、
図8のステップ608の一実施態様例である、ユーザーの視野を判定するプロセス、更に
図8のステップ610の一実施態様例である、ユーザーの焦点領域を判定するプロセスの一実施形態を説明するフローチャートである。
図11のプロセスは、ハブ計算デバイス12からの情報および先に説明した目追跡技術を拠り所とすることができる。
図12は、
図12のプロセスにおいて用いられる追跡情報を提供するためにハブ計算システムによって実行するプロセスの一実施形態を説明するフローチャートである。あるいは、
図12のプロセスは、
図4Aのプロセッサー210によって実行してもよい。
図13は、目を追跡するプロセスの一実施形態を説明するフローチャートであり、この結果は
図12のプロセスによって用いられる。
【0112】
[00138] ハブ計算システムを利用する場合、
図12のステップ686において、ハブ計算デバイス12はユーザーの位置を追跡する。例えば、ハブ計算デバイス12は、1つ以上の深度画像および1つ以上の視覚画像を用いてユーザーを追跡する(例えば、骨格追跡を用いる)。1つ以上の深度画像および1つ以上の視覚画像は、ステップ688において頭部装着ディスプレイ・デバイス2の位置、および頭部装着ディスプレイ・デバイス2の向きを判定するために用いることができる。ステップ690において、ユーザーおよび頭部装着ディスプレイ・デバイス2の位置ならびに向きを、ハブ計算デバイス12から演算装置4に送信する。ステップ692において、演算装置4においてこの位置および配向情報を受け取る。
図12の処理ステップは、ユーザーを連続的に追跡するように、本システムの動作中継続して実行することができる。
【0113】
[00139]
図13は、環境においてユーザーの目の位置を追跡する一実施形態を説明するフローチャートである。ステップ662において、目に照明を当てる。例えば、目追跡照明134Aからの赤外線光を用いて、目に照明を当てることができる。ステップ664において、1つ以上の目追跡カメラ134Bを用いて目からの反射を検出する。ステップ665において、頭部装着ディスプレイ・デバイス2から演算装置4に反射データーを送る。ステップ668において、演算装置4は、先に論じたように、反射データーに基づいて目の位置を判定する。
【0114】
[00140]
図11は、ユーザーの視野を判定するプロセス(例えば、
図8のステップ608)およびユーザーの焦点領域を判定するプロセス(例えば、
図8のステップ610)の一実施形態を説明するフローチャートである。ステップ670において、演算装置4は、ハブから受け取った最新の位置および配向情報にアクセスする。
図12のプロセスは、ステップ814からステップ810への矢印によって示されるように、連続的に実行することができ、したがって、演算装置4は周期的に更新された位置および配向情報を、ハブ計算デバイス12から受け取る。しかしながら、演算装置4は、ハブ計算デバイス12から更新情報を受け取るよりも高い頻度で仮想画像を描画する必要がある。したがって、演算装置4は、ローカルに(例えば、頭部装着ディスプレイ・デバイス2から)検知された情報を拠り所として、ハブ計算デバイス12からのサンプルの間に、向きに対する更新を行う必要がある。加えて、処理レイテンシーのために、仮想画像を素早くレンダリングしなければならないこともある。
【0115】
[00141] あるいは、ステップ670は、いずれの数の手段によって実行してもよい。加速度計、磁力計、およびジャイロスコープを含む、頭部装着ディスプレイ内に埋め込まれているセンサー技術、または他のセンサー技術を用いて、環境におけるユーザーの位置および向きを特定することもできる。ステップ672において、演算装置4は、三軸ジャイロ132Bからのデーターにアクセスする。ステップ674において、演算装置4は三軸加速度132Cからのデーターにアクセスする。ステップ676において、演算装置4は三軸磁力計132Aからのデーターにアクセスする。ステップ678において、演算装置4は、ジャイロ、加速度計、および磁力計からのデーターによって、ハブ計算デバイス12からの位置および配向データーの精度を高める(または、言い換えると、更新する)。ステップ680において、演算装置4は、頭部装着ディスプレイ・デバイスの位置および向きに基づいて、潜在的な視点(point of view)を判定する。頭部装着ディスプレイの位置は、いかなる数の技法を用いてでも判定され、目位置追跡と共に、ユーザーの視野を判定するために用いられる。尚、実施態様の中には、ユーザーの環境の三次元モデルを必要としない場合もあることを注記しておく。多数の頭部追跡技法のいずれでも、用いることができる。頭部装着ディスプレイから入手できるセンサーがあるとすると、慣性検知は加速度計からの慣性測定値を用い、ジャイロスコープを用いることもできる。しかしながら、他の技法を用いてもよい。このような技法には、飛行時間、空間走査、機械的連係、位相差検知、および/または直接場検知が含まれる。このような場合、頭部装着ディスプレイには、追加のハードウェアが必要となることもある。
【0116】
[00142] ステップ682において、演算装置4は最新の目位置情報にアクセスする。ステップ684において、演算装置4は、ユーザーによって見られているモデルの部分を、潜在的な視野の一部として目の位置に基づいて判定する。例えば、ユーザーが壁に向かっていることもあり、したがって、頭部装着ディスプレイの視点は、壁に沿ったいずれかの場所を含むこともあり得る。しかしながら、ユーザーの目が右に向けられている場合、ステップ684では、ユーザーの視野は壁の右側部分のみであると結論付ける。ステップ684の終了時には、演算装置4は頭部装着ディスプレイ2を介したユーザーの視点を判定し終えている。次いで、演算装置4は、その視野内において、不透明フィルターを用いて仮想画像を挿入し光を遮断する位置を特定することができる。
図12の処理ステップは、ユーザーが彼または彼女の頭を動かすに連れてユーザーの視野および焦点領域が連続的に更新されるように、本システムの動作中に連続的に実行することができる。
【0117】
[00143]
図14は、最適画像の一部をユーザーの焦点領域に結合するプロセスを説明するフローチャートである。一実施形態では、
図14は、
図2Aのステップ236および
図2Aのステップ240の一実施態様である。
【0118】
[00144] ステップ1402において、検出したユーザーの視野に基づく画像を、読み出す。この画像は、先のステップ612においてレンダリングしたものである。レンダリングは、ハブ計算システム、あるいは
図4Aおよび
図4Bの処理コンポーネント200または304のいずれかによってそれぞれ行うことができる。一実施形態では、画像を処理するためにハブ計算デバイス12を用いると、頭部装着ディスプレイ2以外の計算リソースな効率的な使用に役立ち、
図4Aおよび
図4Bのコンポーネントというような処理コンポーネントが頭部装着ディスプレイのディスプレイ・エレメントおよび/または微小機械式エレメントを一層アクティブに駆動することが可能になる。1404において、予測した目の位置(eye location)(
図15および
図16にしたがって計算する)を受け取り、1405において、ユーザーの焦点領域に結合するために利用可能な、選択した数の潜在的な高解像度部分を減らす。一実施形態では、ステップ1406においてハブ計算デバイスが処理を実行する場合、1405において、多数の潜在的な部分を選択し、バッファに移動させ、頭部装着ディスプレイ2におけるレンダリング・エリアに最も近い、演算装置において利用可能なメモリ位置の内1つ以上に入れる。一実施形態では、このようなエレメントは、演算装置4のメモリ330に設けることができる。他の実施形態では、これらの部分を頭部装着ディスプレイ2のメモリ224に供給してもよい。1408において、現在の目の位置および視野内における1つ以上の次の可能な目の位置(eye position)においてレンダリングすることができる潜在的な最適セクションを、更に減らす。この場合も、最適部分はハブ計算システムによって計算し、例えば、ハブ計算システムからメモリ330へというように、処理チャネルの下流にバッファするか、またはステップ1410において、演算装置において処理し、メモリ224にバッファしてもよい。1412において、ステップ236または240にしたがって、視聴者の焦点領域に対して最適化された位置において、ディスプレイ上の位置にレンダリングする。
【0119】
[00145]
図15は、目の位置の追跡、既知の目のデーター、ならびに既知の頭部の位置および配向データーに基づいて、次のユーザーの目の位置ならびに頭部の位置および向きを判定するプロセスを示すフローチャートである。先に注記したように、目位置データーは、目追跡カメラ134Bによって取り込むことができる。1502において、ユーザーの目の動きを取り込み、1504において、頭部装着ディスプレイ・センサーおよびキャプチャー・デバイス20A、20Bから入手可能なユーザーの頭部の位置、向き、および動き情報と共にデーターを収集する。目位置データーは、頭部の位置および向きに対する目の位置を含み、頭部は、部屋または環境に対する位置である。1506において、時間Tn毎に、時点Tn+1におけるユーザーの目位置予測を、1508において行う。1510および1512において、時点Tn+1に対する代わりの予測を計算することもできる。目のデーターに対してユーザーの目の位置を予測する方法を、
図16に示す。また、時間Tn毎に、ユーザーの次の頭部の向きおよび位置の予測を、1507において行う。1510および1512において、頭部の向きおよび位置の追加の予測を行うこともできる。1515において、予測した目の位置の内1つを、
図2Aに関する画像の使用にしたがって、次の位置の選択し、1513において、予測した頭部の位置の内1つを選択する。1516において、これらの位置をステップ240において用いて、画像のどの部分を次の位置にレンダリングするか決定し、ユーザーの目および頭部の動きが続くのにしたがって、本方法は1518において繰り返す。
【0120】
[00146]
図16は、可能な目の位置を予測するプロセスを示すフローチャートである。1630において、ユーザーの目についての複数のデーター位置をバッファし、1632において。一旦十分な量のデーターを得てバッファしたなら、予測モデリング・フィルタを用いて、ユーザーの目が時点Tn+1、Tn+2等において所与の位置にある可能性を計算する。一実施形態では、カルマン・フィルタを用い、値を予測し、予測した値の不確実性を推定し、予測値および測定値の加重平均を計算することによって、目位置測定値の真の値の推定値を計算する。最も大きな重みは、不確実性が最も小さい値に与えられる。あるいは、マルコフ・モデルを用いる。マルコフ・モデルは、時間の経過と共に変化するランダム変数によって、システムの状態を判定する。このコンテキストでは、マルコフ特性(Markov property)は、この変数についての分布が、直前の状態の分布のみに依存することを示唆する。頭部の位置および向きを予測するためには、同様の方法を使用してもよい。
【0121】
[00147] 1634において、いずれの数の連続予測でも行って出力することができる。尚、ユーザーの頭部の座標枠組みに対する目の位置の予測には、いずれの数の予測アルゴリムでも利用できることは認められてしかるべきである。以上で参照した方法は、多数の適した実施形態の内の2つに過ぎない。
【0122】
[00148] 以上、構造的特徴および/または方法論的動作に特定な文言で主題について説明したが、添付した特許請求の範囲において定義されている主題は、以上で説明した特定の特徴や動作には必ずしも限定されないことは理解されてしかるべきである。逆に、以上で説明した特定の特徴および動作は、特許請求の範囲を実現する形態例として開示されたまでである。本発明の範囲は、添付する特許請求の範囲によって定義されることを意図している。