特許第6381711号(P6381711)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オキュラス ブイアール,エルエルシーの特許一覧

<>
  • 特許6381711-仮想現実システムの較正 図000002
  • 特許6381711-仮想現実システムの較正 図000003
  • 特許6381711-仮想現実システムの較正 図000004
  • 特許6381711-仮想現実システムの較正 図000005
  • 特許6381711-仮想現実システムの較正 図000006
  • 特許6381711-仮想現実システムの較正 図000007
  • 特許6381711-仮想現実システムの較正 図000008
  • 特許6381711-仮想現実システムの較正 図000009
  • 特許6381711-仮想現実システムの較正 図000010
  • 特許6381711-仮想現実システムの較正 図000011
  • 特許6381711-仮想現実システムの較正 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6381711
(24)【登録日】2018年8月10日
(45)【発行日】2018年8月29日
(54)【発明の名称】仮想現実システムの較正
(51)【国際特許分類】
   G06F 3/01 20060101AFI20180820BHJP
【FI】
   G06F3/01 510
【請求項の数】20
【全頁数】34
(21)【出願番号】特願2017-44754(P2017-44754)
(22)【出願日】2017年3月9日
(62)【分割の表示】特願2016-543235(P2016-543235)の分割
【原出願日】2015年1月6日
(65)【公開番号】特開2017-142813(P2017-142813A)
(43)【公開日】2017年8月17日
【審査請求日】2017年3月9日
(31)【優先権主張番号】62/088,088
(32)【優先日】2014年12月5日
(33)【優先権主張国】US
(31)【優先権主張番号】61/923,895
(32)【優先日】2014年1月6日
(33)【優先権主張国】US
(31)【優先権主張番号】62/088,085
(32)【優先日】2014年12月5日
(33)【優先権主張国】US
(31)【優先権主張番号】14/589,755
(32)【優先日】2015年1月5日
(33)【優先権主張国】US
(31)【優先権主張番号】14/589,774
(32)【優先日】2015年1月5日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】515046968
【氏名又は名称】オキュラス ブイアール,エルエルシー
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】カッツ、ドブ
(72)【発明者】
【氏名】シャイン、ジョナサン
(72)【発明者】
【氏名】ミラー、ロビン マイケル
(72)【発明者】
【氏名】カツエフ、マクシム
(72)【発明者】
【氏名】コンゼン、ニール
(72)【発明者】
【氏名】ラバル、スティーブン
(72)【発明者】
【氏名】アントノーフ、マイケル
【審査官】 円子 英紀
(56)【参考文献】
【文献】 特許第6110573(JP,B2)
【文献】 特開2005−107247(JP,A)
【文献】 特開2008−289645(JP,A)
【文献】 特開2013−258614(JP,A)
【文献】 特開2007−071782(JP,A)
【文献】 特開2008−065416(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048−3/0489
H04N 5/64
(57)【特許請求の範囲】
【請求項1】
システムであって、
仮想現実(VR)ヘッドセットであって、前部剛体と、後部剛体と、前記前部剛体および後部剛体の各々に配置された複数のロケータと、前記仮想現実ヘッドセット上の参照点の1つ又は複数の中間推定位置を含む高速較正データを出力するように構成される慣性測定ユニット(IMU)とを含み、前記1つ又は複数の中間推定位置は、前記仮想現実ヘッドセットの推定された位置を示し、各中間推定位置は、位置時刻値により後続する中間推定位置から隔てられ、前記前部剛体は、前記後部剛体に非剛性結合されている、前記仮想現実ヘッドセットと、
前記仮想現実ヘッドセットの外部にある撮像デバイスであって、該撮像デバイスは、前記仮想現実ヘッドセットの複数の画像を取得し、前記仮想現実ヘッドセットに配置された複数のロケータの観測ロケータの部分を示す一連の画像を含む低速較正データを出力するように構成され、各画像は、前記位置時刻値よりも大きな画像時刻値により、前記一連中の後続画像から隔てられる、前記撮像デバイスと、
仮想現実コンソールと、を備え、
前記仮想現実コンソールは、
プロセッサと、
前記プロセッサに結合され、命令を含むメモリと、を備え、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
低速較正データ及び高速較正データを用いて前記仮想現実ヘッドセットを追跡すること、を実行させる、システム。
【請求項2】
前記慣性測定ユニットは、角速度を測定する3軸ジャイロスコープを含む、請求項1に記載されたシステム。
【請求項3】
前記慣性測定ユニットは、3軸加速度計を含む、請求項1に記載されたシステム。
【請求項4】
前記慣性測定ユニットは、3軸磁力計を含む、請求項1に記載されたシステム。
【請求項5】
前記複数のロケータは、同一平面ではない仮想現実ヘッドセットのパターンで配置される、請求項1に記載されたシステム。
【請求項6】
前記複数のロケータは、複数の発光ダイオード(LED)である、請求項1に記載されたシステム。
【請求項7】
前記複数の発光ダイオードは、時間間隔にわたり2つ以上の所定の輝度レベルのうちの1つを維持するように変調される、請求項6に記載されたシステム。
【請求項8】
前記複数の発光ダイオードの変調は、振幅変調、周波数変調、及びこれらの組合せからなるグループから選択される、請求項7に記載されたシステム。
【請求項9】
前記複数の発光ダイオードは、可視帯域及び赤外線帯域からなるグループから選択された特定の帯域の光を発する、請求項6に記載されたシステム。
【請求項10】
前記複数のロケータは、赤外線帯域で照射し、
前記仮想現実ヘッドセットの外面は、赤外線帯域で可視であり、可視帯域で不透明である、請求項7に記載されたシステム。
【請求項11】
前記命令は、
前記プロセッサによって実行されると、前記プロセッサに、
前記仮想現実ヘッドセットに関連付けられた記憶ヘッドセットモデルを使用して、前記仮想現実ヘッドセットにあり、前記低速較正データからの少なくとも1つの画像に含まれるロケータにそれぞれ対応するモデルロケータを識別すること、
前記仮想現実ヘッドセットのモデルを使用して、前記仮想現実ヘッドセットにあり、前記低速較正データからの少なくとも1つの画像に含まれる前記ロケータの1つ又は複数の推定位置を生成すること、
1つ又は複数の較正パラメータを調整して、前記仮想現実ヘッドセットにあり、前記低速較正データからの少なくとも1つの画像に含まれる前記ロケータの1つ又は複数の調整推定位置と対応するモデルロケータの位置との相対距離が閾値未満であるように、前記推定位置を調整すること、
少なくとも部分的に、前記仮想現実ヘッドセットにあり、前記低速較正データからの少なくとも1つの画像に含まれる前記ロケータの1つ又は複数の調整推定位置に基づいて、前記参照点の較正位置を生成することであって、較正位置には、前記低速較正データからの画像が関連付けられる、前記較正位置を生成すること、
少なくとも部分的に、前記参照点の較正位置に基づいて、前記参照点の1つ又は複数の予測位置を特定することであって、予測位置には、前記低速較正データからの後続画像間の時間が関連付けられる、前記予測位置を特定すること、
前記参照点の中間推定位置が、前記参照点の特定された予測位置の閾値距離内にあるように、前記較正パラメータの1つ又は複数を調整すること、を実行させる較正命令を含む、請求項1に記載のシステム。
【請求項12】
記前部剛体は、前記慣性測定ユニットを含む、請求項1に記載されたシステム。
【請求項13】
前記前部剛体は、弾性ヘッドバンドによって後部剛体に非剛性結合される、請求項12に記載されたシステム。
【請求項14】
較正命令をさらに備え、
前記較正命令は、前記プロセッサによって実行されると、前記プロセッサに、
前記低速較正データを使用して、特定の画像時刻値での前記後部剛体の観測位置を特定すること、
前記高速較正データと、前記前部剛体と前記後部剛体との較正オフセットを示す位置ベクトルとを使用して、前記特定の画像時刻値での前記後部剛体の予測位置を特定すること、
前記観測位置と前記予測位置との差が閾値よりも大きいと判断すること、
前記後部剛体の観測位置と前記後部剛体の予測位置との差が閾値よりも大きいとの判断に応答して、前記観測位置と前記予測位置との差が前記閾値未満であるようなオフセット値により、前記位置ベクトルを調整すること、
前記高速較正データ及び調整された位置ベクトルに基づいて、前記画像時刻値後に発生する後続画像時刻値に関連付けられた前記一連の画像からの画像での前記後部剛体の後続予測位置を特定すること、を実行させる、請求項12に記載されたシステム。
【請求項15】
システムであって、
仮想現実(VR)ヘッドセットであって、前部剛体と、後部剛体と、前記前部剛体および後部剛体の各々に配置された複数のロケータと、前記仮想現実ヘッドセット上の参照点の1つ又は複数の中間推定位置を含む高速較正データを出力するように構成される慣性測定ユニット(IMU)とを含み、前記1つ又は複数の中間推定位置は、前記仮想現実ヘッドセットの推定された位置を示し、各中間推定位置は、位置時刻値により後続する中間推定位置から隔てられ、前記前部剛体は、前記後部剛体に非剛性結合されている、前記仮想現実ヘッドセットと、
前記仮想現実ヘッドセット上の前記複数のロケータの観測ロケータの部分を示す一連の画像を含む低速較正データを出力するように構成される撮像デバイスであって、各画像は、前記位置時刻値よりも大きな画像時刻値により、前記一連中の後続画像から隔てられる、前記撮像デバイスと、
仮想現実コンソールと、を備え、
前記仮想現実コンソールは、
プロセッサと、
前記プロセッサに結合され、命令を含むメモリと、を備え、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
低速較正データ及び高速較正データを用いて前記仮想現実ヘッドセットを追跡すること、を実行させる、システム。
【請求項16】
前記複数のロケータは、時間間隔にわたり2つ以上の所定の輝度レベルのうちの1つを維持するように変調される発光ダイオード(LED)を含む、請求項15に記載されたシステム。
【請求項17】
前記複数の発光ダイオードの変調は、振幅変調、周波数変調、及びこれらの組合せからなるグループから選択される、請求項16に記載されたシステム。
【請求項18】
前記複数の発光ダイオードは、可視帯域及び赤外線帯域からなるグループから選択された特定の帯域の光を発する、請求項16に記載されたシステム。
【請求項19】
前記複数の発光ダイオードは、赤外線帯域で照射し、
前記仮想現実ヘッドセットの外面は、赤外線帯域で可視であり、可視帯域で不透明である、請求項18に記載されたシステム。
【請求項20】
記前部剛体は、前記慣性測定ユニットを含む、請求項15に記載されたシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して較正システムに関し、より詳細には仮想現実システムの較正に関する。
【背景技術】
【0002】
動作追跡は、多くのデバイスで対処されてきた昔からある問題である。例としては、全地球測位システム、航空機レーダシステム、ロボットシステム、及び家庭娯楽システムが挙げられる。最後の事例では、既存のデバイスは、ゲームコントローラ又はゲームと対話する人々の動きを追跡する。
【0003】
幾つかの重要な特性により、最も適切な検知及び計算ハードウェアのタイプが決まる:1)剛体のサイズ、2)剛体が移動し得る空間の容積、3)剛体の最大速度及び加速度の限界、4)剛体の予測可能性。
【0004】
動作追跡システムでは、通常、比較的小さな空間にある間、通常、屋内で着座している間に人体に対して保持されるデバイスの動きを追跡する必要があるが、これは必要なことではない。より詳細には、その意図は、ユーザがヘッドマウントディスプレイを装着している間、頭部の動きを追跡することである。これは、システムの性能に対して極めて厳しい要件を生じさせる。例えば、仮想現実では、位置及び向きのエラーは、ユーザが真の没入を感じないため、不良な経験を生じさせる。さらに、ディスプレイを見ている間、人間の前庭系によって脳に提供される信号と、人間の視覚系によって脳に提供される信号との不一致があり得る。
【0005】
この使用例は、動きが生じ得る空間の容積に制限を課す。これは、さらに、人間の動きから誘導される速度及び加速度への速度及び加速度を制限するが、一般に動きが予測不可能であることも極めて重要である。さらに、人体の動きの複雑性及び他の剛体との人体の対話により、動きを支配する物理学をモデリングすることは困難である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
仮想現実(VR)デバイスは、ユーザが装着したヘッドセットの位置及び動きを特定する構成要素を含む。これらの構成要素は、最初は製造許容差に起因し、続けてシステムの通常の使用に起因して、様々なときに較正する必要がある。較正されたVRデバイスを不適切に動作させると、ヘッドセットの位置又は動きの追跡が不適切になり、これは、ユーザの動きとヘッドセットを介してユーザに提示されるメディアとの間に不一致を生じさせる。さらに、ヘッドのセットの位置及び動きを特定する構成要素の1つ又は複数は、時間の経過に伴い又は使用に伴い較正を失うおそれがある。例えば、温度又は振動の変化は、ヘッドセットの動きを撮像しているカメラの較正を失わせるおそれがある。
【課題を解決するための手段】
【0007】
VRシステムの仮想現実(VR)ヘッドセットは、一緒に非剛性結合される前部剛体及び後部剛体を含む。例えば、前部剛体は、弾性ヘッドバンドによって後部剛体に結合され、それにより、VRシステムは、前部剛体がVRシステムに含まれる撮像デバイスから離れて向けられたとき、VRヘッドセットを装着しているエンティティの動きを引き続き検出する。前部剛体及び後部剛体は両方とも、VRヘッドセットの位置を追跡するためのロケータを含む。ロケータとは、VRヘッドセットの別のロケータ等の1つ又は複数の構成要素に相対するとともに、VRヘッドセット上の参照点に相対して、VRヘッドセット上の特定の位置に配置される物体である。前部剛体と後部剛体との関係は必ずしも一定ではないため、VRシステムは、後部剛体に相対する前部剛体の位置の追跡を失い、VRシステムに再較正させて、VRヘッドセットの追跡を再取得させることがある。幾つかの実施形態では、VRコンソールは、後部剛体に対する前部剛体の再較正を行うことができるまで、高速較正データと、オフセット値によって調整された位置ベクトルとを使用して、後部剛体からのロケータのみを含む低速較正データ内の画像の特定の画像時刻値後の時間での後部剛体の後続予測位置を特定する。
【0008】
VRシステムは、前部剛体の位置又は後部剛体の位置の追跡が失われるとき、それ自体を較正する。例えば、VRシステムは、後部体のロケータの推定位置と、前部剛体に含まれる1つ又は複数の位置センサ(例えば、加速度計、ジャイロスコープ)からのデータに基づいて前部剛体内の慣性測定ユニット(IMU)によって特定される前部剛体の参照点の中間推定位置との測定差に基づいて、いつ再較正するかを決定する。参照点の中間推定位置は、高速較正データから特定される位置であり、画像に関連付けられた時間又は画像に関連付けられた時間と低速較正データからの後続画像との間の時間が関連付けられ得る。
【0009】
仮想現実(VR)システムの構成要素は、VRシステムに関連付けられたVRヘッドセットの追跡を維持するように較正される。VRシステムは、撮像デバイスから受信される低速較正データ及びVRヘッドセットに含まれる慣性測定ユニット(IMU)から受信される高速較正データを較正に使用する。幾つかの実施形態では、VRシステムの構成要素は、まず1つ又は複数のデフォルトパラメータを構成要素に適用することによって較正し得る。デフォルトパラメータに基づいて、VRシステムは、VRヘッドセットに含まれる1つ又は複数のロケータに関連付けられた位置を識別することにより、VRヘッドセットの動きを追跡する。ロケータとは、VRヘッドセットの別のロケータ等の1つ又は複数の構成要素に相対するとともに、VRヘッドセット上の参照点に相対して、VRヘッドセット上の特定の位置に配置される物体である。幾つかの実施形態では、VRヘッドセットは、互いに非剛性結合された2つの剛体を含み、ロケータは、ユーザの頭部の位置及び向きを追跡するために、各剛体に含まれる。VRシステムは、閾値未満である1つ又は複数のロケータの観測位置と1つ又は複数のロケータの推定位置との間の差まで、1つ又は複数の較正パラメータを調整する。
【0010】
幾つかの実施形態では、VRシステムは、撮像デバイスからのVRヘッドセットの複数のロケータの部分を示す一連の画像を含む低速較正データを受信するVRコンソールを含む。各画像は、画像時刻値により、一連内の後続画像から隔てられる。さらに、VRコンソールは、VRヘッドセットに含まれるIMUから、VRヘッドセットの参照点の1つ又は複数の中間位置を含む高速較正データを受信する。参照点の中間推定位置は、高速較正データから特定される位置であり、画像に関連付けられた時間又は画像に関連付けられた時間と低速較正データからの後続画像との間の時間が関連付けられ得る。IMUは、VRヘッドセットに含まれる1つ又は複数の位置センサ(例えば、加速度計、ジャイロスコープ)からのデータに基づいて、参照点の中間推定位置を特定する。各中間推定位置は、画像時間未満値である位置時刻値により、後続中間推定位置から隔てられる。
【0011】
幾つかの実施形態では、VRシステムに含まれるVRコンソールは、撮像デバイスから画像時刻値において撮影されたVRヘッドセットの一連の画像を含む低速較正データを受信する。一連の画像の少なくとも1つの画像は、後部剛体のロケータのみを含み、特定の画像時刻値が関連付けられる。さらに、VRコンソールは、IMUから、VRヘッドセットの前部剛体に含まれる1つ又は複数の位置センサから特定されるVRヘッドセットの前部剛体の参照点の1つ又は複数の中間推定位置を含む高速較正データを受信する。VRコンソールは、低速較正データを使用して、特定の画像時刻値での後部剛体の観測位置を特定し、高速較正データと、前部剛体と後部剛体との較正オフセットを示す位置ベクトルとを使用して、VRヘッドセットの後部剛体のみからのロケータを含む画像に関連付けられた画像時刻値での後部剛体の予測位置を特定する。
【0012】
VRコンソールは、後部剛体の観測位置と後部剛体の予測位置との差を特定する。この差が閾値よりも大きい場合、VRコンソールは、後部剛体の観測位置と後部剛体の予測位置との差が閾値未満であるような一時的オフセット値により、後部剛体の予測位置を調整する。幾つかの実施形態では、VRコンソールは、後部剛体への前部剛体の再較正を行うことができるまで、高速較正データと、オフセット値により調整された位置ベクトルとを使用して、後部剛体からのロケータのみを含む低速較正データ内の画像の特定の画像時刻値後の画像の後部剛体の後続予測位置を特定する。
【0013】
再較正は、後部剛体のロケータのみを含む画像の特定の時間後の時間を有し、少なくとも、前部剛体の前部閾値数の観測ロケータ及び後部剛体の後部閾値数の観測ロケータを含む、低速較正データからの少なくとも1つの画像を使用する。VRコンソールは、VRヘッドセットのヘッドセットモデルを使用して、低速較正データ内の画像からの観測ロケータに対応するモデルロケータを識別する。例えば、VRコンソールは、低速較正データ内の画像からロケータ情報を抽出し、ロケータ情報は、所与の画像内の互いに対する、VRヘッドセットの観測ロケータの位置を示す。低速較正データからの画像の少なくとも1つでは、VRコンソールは、前部剛体及び後部剛体の両方の観測ロケータに対応するモデルロケータを識別する。VRコンソールは、ロケータ情報をヘッドセットモデルと比較して、観測ロケータに対応するモデルロケータを識別する。
【0014】
ロケータ情報に基づいて、VRコンソールは、ヘッドセットモデルを使用して観測ロケータの推定位置を生成する。例えば、VRコンソールは、ヘッドセットモデルと、観測ロケータの位置を識別する情報とを使用して、(ヘッドセットモデルによって記述される)理想的な位置を(観測ロケータの画像によって示される)撮像デバイスの画像平面上の位置に変換するための射影行列を特定する。VRコンソールは射影行列を使用して、観測ロケータの位置を推定する。VRコンソールは、射影行列を使用して観測ロケーションの位置を推定し、1つ又は複数の較正パラメータを調整して、前部剛体の観測ロケータの調整推定位置と、ヘッドセットモデル観測ロケーションによって特定される対応する位置との相対距離が閾値未満になるまで、前部剛体の観測ロケータの推定位置の1つ又は複数を調整する。同様に、VRコンソールは、後部剛体の観測ロケータの推定位置を特定し、上述したように、後部剛体の観測ロケーションの推定位置を調整する。前部剛体の観測ロケータの調整推定位置に基づいて、VRコンソールは、低速較正データからの1つ又は複数の画像の前部剛体の参照点の較正位置を特定する。
【0015】
VRコンソールは、前部剛体の参照点に相対する後部剛体の位置を特定する。例えば、VRコンソールは、後部剛体の観測ロケータの調整推定位置を使用して、後部剛体の後部参照点を識別する。次に、VRコンソールは、前部剛体の参照点に相対する後部参照点の位置を識別する。代替の実施形態では、VRコンソールは、前部剛体の参照点に相対する後部剛体の各観測ロケータの位置を識別する。VRコンソールはさらに、前部剛体の参照点及び/又は後部参照点の中間推定位置が、前部剛体の参照点の較正位置及び/又は低速較正データからの後部参照点の較正位置(例えば、曲線近似を介して)から特定される前部剛体及び/又は後部剛体の参照点の予測位置の閾値内であるように、1つ又は複数の較正パラメータを調整する。
【0016】
VRシステムの実施形態は、多数とは対照的に単一のカメラのみを使用することにより、高精度の追跡を提供するとともに、体の表面に上手く分散した多数のLEDを通して高精度を達成する。変調手法により、各LEDは一意に識別することができ、その結果、オクルージョン及び近傍の光源からの干渉に対するロバスト性がより高いシステムになる。さらに、変調手法はデジタルハードウェアと併せて、消費電力を低減し、その理由は、LEDが、カメラシャッタが開かれているときのみ給電されるためである。
【0017】
VRシステムは、仮想現実及び拡張現実に適するレベルの性能で、同時に既存の技術と比較して経済的要件及び論理的要件を劇的に低減しながら、ヘッドマウントディスプレイ又はゲームコントローラ等の他の物体を追跡する問題を解消する。
【図面の簡単な説明】
【0018】
図1】実施形態による仮想現実コンソールが動作するシステム環境のブロック図である。
図2A】実施形態による仮想現実ヘッドセットのワイヤ図である。
図2B】実施形態による前部剛体及び後部剛体を含む仮想現実ヘッドセットのワイヤ図である。
図3】実施形態による仮想現実コンソールの追跡モジュールのブロック図である。
図4】実施形態による仮想現実システムを較正するプロセスのフローチャートである。
図5】実施形態による、仮想現実システムに含まれる仮想現実ヘッドセット内の2つの剛体間に較正を再確立するプロセスのフローチャートである。
図6】実施形態による、仮想現実システムに含まれる仮想現実ヘッドセット内の2つの剛体間の位置関係を維持するプロセスのフローチャートである。
図7】実施形態による、仮想現実ヘッドセットの一連の較正位置を示すグラフ例である。
図8】位置追跡システムの高レベル図例である。
図9】観測された明るいドット及び予測射影の例を示す。
図10】ポーズ最適化の例を示す。
【発明を実施するための形態】
【0019】
図は、単に例示を目的として本開示の実施形態を示す。以下の説明から、本明細書に記載される本開示の原理又は得られる利点から逸脱せずに、本明細書に示される構造及び方法の代替の実施形態が利用可能であることを当業者は容易に認識しよう。
【0020】
システムアーキテクチャ
図1は、VRコンソール110が動作する仮想現実(virtual reality : VR)システム環境100の一実施形態のブロック図である。図1に示されるシステム環境100は、VRヘッドセット105と、撮像デバイス135と、VR入力インターフェース140とを備え、それぞれがVRコンソール110に結合されている。図1は、1つのVRヘッドセット105、1つの撮像デバイス135、及び1つのVR入力インターフェース140を含む例としてのシステム100を示すが、他の実施形態では、任意の数のこれらの構成要素がシステム100に含まれ得る。例えば、それぞれが関連付けられたVR入力インターフェース140を有し、1つ又は複数の撮像デバイス135によってモニタされる複数のVRヘッドセット105があり得、各VRヘッドセット105、VR入力インターフェース140、及び撮像デバイス135は、VRコンソール110と通信する。代替の構成では、異なる及び/又は追加の構成要素がシステム環境100に含まれ得る。
【0021】
VRヘッドセット105は、メディアをユーザに提示するヘッドマウントディスプレイである。VRヘッドセットによって提示されるメディアの例としては、1つ又は複数の画像、ビデオ、オーディオ、又はそれらの何らかの組合せが挙げられる。幾つかの実施形態では、オーディオは、オーディオ情報をVRヘッドセット105、VRコンソール110、又は両方から受信し、オーディオ情報に基づいてオーディオデータを提示する外部デバイス(例えば、スピーカ及び/又はヘッドフォン)を介して提示される。VRヘッドセット105の実施形態例については、図2A及び図2Bと併せて更に後述する。
【0022】
様々な実施形態では、VRヘッドセット105は、互いに剛性結合又は非剛性結合し得る1つ又は複数の剛体(rigid body)を備え得る。剛体間の剛性結合は、結合された剛体を単一の剛性実体として機能させる。逆に、剛体間の非剛性結合は、剛体が互いに対して移動できるようにする。一緒に非剛性結合される2つの剛体を含むVRヘッドセット105の実施形態について、図2Bと併せて更に後述する。
【0023】
VRヘッドセット105は、電子ディスプレイ115、1つ又は複数のロケータ(locator)120、1つ又は複数の位置センサ125、及び慣性測定ユニット(IMU:inertial measurement unit)130を含む。電子ディスプレイ115は、VRコンソール110から受信されるデータに従って画像をユーザに表示する。様々な実施形態では、電子ディスプレイ115は、単一の電子ディスプレイ又は複数の電子ディスプレイ(例えば、ユーザのそれぞれの目に1つのディスプレイ)を含み得る。電子ディスプレイ115の例としては、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、アクティブマトリックス式有機発光ダイオード(AMOLED)、何らかの他のディスプレイ、又はそれらの何らかの組合せが挙げられる。さらに、電子ディスプレイ115には、1つ又は複数のタイプの光学エラー(例えば、像面歪曲、収差、樽形歪曲、糸巻歪曲、色収差等)を補正する1つ又は複数の光学構成要素が関連付けられ得る。幾つかの実施形態では、ユーザに提示するために電子ディスプレイ115に提供されるメディアは、1つ又は複数のタイプの光学エラーの補正を補助するために予め歪ませられる。さらに、光学構成要素は、倍率又は別の適する方法を通して、表示されたメディアの視野を増大させることができる。例えば、表示されるメディアの視野は、表示されるメディアがユーザの視野の略全て(例えば、110度対角)又は幾つかの場合では全てを使用して提示されるようなものである。
【0024】
ロケータ120は、互いに相対するとともに、VRヘッドセット105上の特定の参照点に相対してVRヘッドセット105上の特定の位置に配置される物体である。ロケータ120は、発光ダイオード(LED)、コーナーキューブリフレクタ、反射マーカ、VRヘッドセット105が動作する環境と対照的な光源の一種、又はそれらの何らかの組合せであり得る。ロケータ120がアクティブ(すなわち、LED又は他のタイプの発光デバイス)である実施形態では、ロケータ120は、可視帯域(約380nm〜750nm)、赤外線(IR)帯域(約750nm〜1mm)、紫外線帯域(10nm〜380nm)、電磁スペクトルの何らかの他の部分、又はそれらの組合せの光を発し得る。
【0025】
幾つかの実施形態では、ロケータは、ロケータ120によって発せられるか、若しくは反射される光の波長を透過するか、又はロケータ120によって発せられるか、若しくは反射される光の波長を実質的に減衰させないほど十分に薄いVRヘッドセット105の外面の下に配置される。さらに、幾つかの実施形態では、VRヘッドセット105の外面又は他の部分は、可視帯域で不透明である。したがって、ロケータ120は、IR帯域では透明であるか、可視帯域では不透明な外面下でIR帯域の光を発し得る。
【0026】
IMU130は、位置センサ125の1つ又は複数から受信される測定信号に基づいて高速較正データを生成する電子デバイスである。位置センサ125は、VRヘッドセット105の動きに応答して1つ又は複数の測定信号を生成する。位置センサ125の例としては、1つ又は複数の加速度計、1つ又は複数のジャイロスコープ、1つ又は複数の磁力計、任意の他の適するタイプのセンサ、又はそれらの何らかの組合せが挙げられる。位置センサ125は、IMU130の外部、IMU130の内部、又はそれらの何からの組合せに配置し得る。
【0027】
1つ又は複数の位置センサ125からの1つ又は複数の測定信号に基づいて、IMU130は、VRヘッドセット105の初期位置に相対するVRヘッドセット105の推定位置を示す高速較正データを生成する。例えば、位置センサ125は、並進移動(前/後、上/下、左/右)を測定する複数の加速度計と、回転移動(例えば、ピッチ、ヨー、ロール)を測定する複数のジャイロスコープとを含む。幾つかの実施形態では、IMU130は、測定信号を高速サンプリングし、サンプリングデータからVRヘッドセット105の推定位置を計算する。例えば、IMU130は、加速度計から時間の経過に伴い受信した測定信号を積分して、速度ベクトルを推定し、時間の経過に伴って速度ベクトルを積分して、VRヘッドセット105上の参照点の推定位置(例えば、中間推定位置)を測定する。代替的には、IMU130は、サンプリングされた測定信号をVRコンソール110に提供し、VRコンソール110は高速較正データを特定する。参照点とは、VRヘッドセット105の位置の特定に使用し得る点である。参照点は一般に、空間内の点として定義し得るが、実際には、参照点は、VRヘッドセット105内の点(例えば、IMU130の中心)として定義される。
【0028】
IMU130は、1つ又は複数の較正パラメータをVRコンソール110から受信する。更に後述するように、1つ又は複数の較正パラメータは、VRヘッドセット105の追跡を維持するために使用される。受信された較正パラメータ(例えば、IMUパラメータ)に基づいて、IMU130は動作を調整(例えば、サンプリングレート等を変更)し得る。幾つかの実施形態では、更に後述するように、特定の較正パラメータは、IMU130に、VRヘッドセット105の推定位置をオフセットさせ、VRヘッドセット105の特定の部分のみが撮像デバイス135に可視である場合に生じ得る位置エラーを補正する。幾つかの実施形態では、特定の較正パラメータは、参照点の初期位置が参照点の次の較正位置に対応するように、IMU130に参照点の初期位置を更新させる。参照点の次の較正位置として、参照点の初期位置を更新することは、特定された推定位置に関連付けられた累積エラーを除去するのに役立つ。累積エラーは、ドリフトエラーとも呼ばれ、時間の経過に伴い、参照点の推定位置を参照点の実際の位置から離す。
【0029】
撮像デバイス135は、VRコンソール110から受信される較正パラメータに従って低速較正データを生成する。低速較正データは、撮像デバイス135によって検出可能なロケータ120の観測位置を示す1つ又は複数の画像を含む。撮像デバイス135は、1つ又は複数のカメラ、1つ又は複数のビデオカメラ、ロケータ120の1つ又は複数を含む画像を捕捉可能な任意の他のデバイス、又はそれらの任意の組合せを含み得る。さらに、撮像デバイス135は、1つ又は複数のフィルタ(例えば、信号対雑音比の増大に使用される)を含み得る。撮像デバイス135は、撮像デバイス135の視野にロケータ120から放射されるか、又は反射される光を検出するように構成される。ロケータ120が受動要素(例えば、再帰反射器)を含む実施形態では、撮像デバイス135は、ロケータ120の幾つか又は全てを照明する光源を含み得、ロケータ120は、光を撮像デバイス135内の光源に向けて再帰反射する。低速較正データは、撮像デバイス135からVRコンソール110に通信される。撮像デバイス135は、1つ又は複数の較正パラメータをVRコンソール110から受信し、較正パラメータに基づいて1つ又は複数の撮像パラメータ(例えば、焦点距離、焦点、フレームレート、ISO、センサ温度、シャッタ速度、アパーチャ等)を調整し得る。
【0030】
VR入力インターフェース140は、ユーザが動作要求をVRコンソール110に送信できるようにするデバイスである。動作要求は、特定の動作を実行する要求である。例えば、動作要求は、アプリケーションの開始若しくは終了又はアプリケーション内の特定の動作を実行する要求であり得る。VR入力インターフェース140は、1つ又は複数の入力デバイスを含み得る。入力デバイス例としては、キーボード、マウス、ゲームコントローラ、又は動作要求を受信し、受信した動作要求をVRコンソール110に通信する任意の他の適するデバイスが挙げられる。VR入力インターフェース140によって受信された動作要求は、VRコンソール110に通信され、VRコンソール110は、動作要求に対応する動作を実行する。幾つかの実施形態では、VR入力インターフェース140は、VRコンソール110から受信される命令に従って触覚フィードバックをユーザに提供し得る。例えば、触覚フィードバックは、動作要求が受信されるときに提供されるか、又はVRコンソール110は、動作を実行するとき、VR入力インターフェース140に触覚フィードバックを生成させる命令をVR入力インターフェース140に通信する。
【0031】
VRコンソール110は、撮像デバイス135、VRヘッドセット105、及びVR入力インターフェース140のうちの1つ又は複数から受信される情報に従って、ユーザに提示されるメディアをVRヘッドセット105に提供する。図1に示される例では、VRコンソール110は、メディアストア145、追跡モジュール150、及び仮想現実(VR)エンジン155を含む。VRコンソール110の幾つかの実施形態は、図1と併せて説明されるモジュールとは異なるモジュールを有する。同様に、更に後述する機能は、本明細書に記載されるものとは異なる様式でVRコンソール110の構成要素に分散し得る。
【0032】
アプリケーションストア145は、VRコンソール110による実行のために1つ又は複数のアプリケーションを記憶する。アプリケーションは、プロセッサによって実行されると、ユーザに提示されるメディアを生成する命令群である。アプリケーションによって生成されるメディアは、HRヘッドセット105又はVRインターフェースデバイス140の動きを介してユーザから受信される入力に応答し得る。アプリケーション例としては、ゲーミングアプリケーション、会議アプリケーション、ビデオ再生アプリケーション、又は他の適するアプリケーションが挙げられる。
【0033】
追跡モジュール150は、1つ又は複数の較正パラメータを使用してシステム環境100を較正する。図3図5と併せて更に説明するように、追跡モジュール150は、1つ又は複数の較正パラメータを調整して、VRヘッドセット105の位置特定におけるエラーを低減し得る。例えば、追跡モジュール150は、撮像デバイス135の合焦を調整して、VRヘッドセット105の観測ロケータのより正確な位置を取得する。さらに、追跡モジュール150によって実行される較正は、IMU130から受信される情報も考慮する。さらに、図4及び図5と併せて更に後述するように、VRヘッドセット105のその追跡が失われる(例えば、撮像デバイス135が、少なくとも閾値数のロケータ120の視線を失う)場合、追跡モジュール150は、システム環境100の幾つか又は全てを再較正する。本明細書で使用される場合、「追跡の損失(loss of tracking)」は一般に、撮像デバイス135若しくはIMU130の較正の損失、VRヘッドセット105内の1つ又は複数の剛体の相対位置の損失、撮像デバイス135に相対するVRヘッドセット105の位置の損失、又はそれらの何らかの組合せを指し得る。
【0034】
システム環境100の再較正は一般に、ユーザにとってトランスペアレント(transparent)である。幾つかの実施形態では、追跡モジュール150は、VRヘッドセット105をVRヘッドセット105の1つ又は複数の側が撮像デバイス135にとって可視である向きに移動するようにユーザに促し得る。例えば、追跡モジュール150は、VRヘッドセット105の1つ又は複数の側が撮像デバイス135にとって可視であるように、上、下、左、右、又は別の指定された方向を見るようにユーザに促す。VRヘッドセット105上の閾値数のロケータ120が撮像デバイス135によって撮像されると、追跡モジュール150は較正を再確立する。幾つかの実施形態では、追跡モジュール150は、システム環境100を連続して較正し得るか、又は定期的な間隔でシステム環境100を較正して、VRヘッドセット105の正確な追跡を維持する。
【0035】
追跡モジュール150は、1つ又は複数の剛体を備えるVRヘッドセット105を含むシステム環境100(例えば、図2A及び図2B参照)を較正し得る。さらに、図3及び図5と併せて更に後述するように、較正は、非剛性結合される(例えば、弾性バンドを介して一緒に結合される)2つの剛体を含むVRヘッドセット105を考慮する。2つの剛体は、ユーザの目の前に位置決めされるIMU130を含む前部剛体及びユーザの頭部の後部に位置決めされる後部剛体であり得る。前部剛体及び後部剛体のこの構成では、ユーザは撮像デバイス135に相対して360度回転させることができる。しかし、前部剛体と後部剛体との関係は必ずしも固定されないため、システム環境100は、後部剛体に相対する前部剛体の位置の較正を失うことがある。さらに、図6に関して詳細に後述するように、幾つかの実施形態では、追跡がVRヘッドセット105での複数の剛体間で失われる場合、追跡モジュール150は、再較正を行うことができるまで、剛体の位置をオフセットし得る。これらの場合、幾つかの実施形態では、追跡モジュール150は、VRヘッドセット105の中間推定位置へのオフセット値を特定し、較正パラメータとしてIMU130に提供し得る。代替的には、追跡モジュール150は、オフセット値により後部剛体への前部剛体の相対位置を示す位置ベクトルを調整し得る。幾つかの実施形態では、追跡モジュール150は、後部剛体のロケータ120によって示される動きと、IMU130から受信される高速較正データを使用して予測される動きとの測定差に基づいて、いつ再較正するかを判断する。追跡モジュール150は、前部剛体のロケータ120と、後部剛体のロケータとを含む1つ又は複数の画像を含む低速較正データを使用して再較正する。
【0036】
さらに、追跡モジュール150は、撮像デバイス13からの低速較正データを使用して、VRヘッドセット105の動きを追跡する。図3と併せて更に後述するように、追跡モジュール150は、低速較正データからの観測ロケータ及びVRヘッドセット105のモデルを使用して、VRヘッドセット105の参照点の位置を特定する。追跡モジュール150は、高速較正データからの位置情報を使用して、VRヘッドセット105の参照点の位置も特定する。さらに、幾つかの実施形態では、追跡モジュール150は、高速較正データの部分、低速較正データの部分、又はそれらの何らかの組合せを使用して、ヘッドセット105の将来のロケーションを予測し得る。追跡モジュール150は、VRヘッドセット105の推定又は予測された将来の位置をVRエンジン155に提供する。
【0037】
VRエンジン155は、システム環境内のアプリケーションを実行し、追跡モジュール150からVRヘッドセット105の位置情報、加速度情報、速度情報、予測される将来の位置、又はそれらの何らかの組合せを受信する。受信した情報に基づいて、VRエンジン155は、ユーザに提示するためにVRヘッドセット105に提供するメディアを決定する。例えば、受信した情報が、ユーザが左を見たことを示す場合、VRエンジン155は、仮想環境でユーザの動きをミラーリングする、VRヘッドセット105へのメディアを生成する。さらに、VRエンジン155は、VR入力インターフェース140から受信される動作要求に応答して、VRコンソール110で実行中のアプリケーション内で動作を実行し、動作が実行されたことのフィードバックをユーザに提供する。提供されたフィードバックは、VRヘッドセット105を介する可視若しくは可聴的フィードバックであってもよく、又はVR入力インターフェース140を介する触覚フィードバックであってもよい。
【0038】
図2Aは、仮想現実ヘッドセットの一実施形態のワイヤ図である。VRヘッドセット200は、VRヘッドセット105の実施形態であり、前部剛体205及びバンド210を含む。前部剛体205は、電子ディスプレイ115(図示せず)、IMU130、1つ又は複数の位置センサ125、及びロケータ120を含む。図2Aに示される実施形態では、位置センサ125は、IMU130内に配置され、位置センサ125もIMU130もユーザにとって不可視である。
【0039】
ロケータ120は、互いに相対するとともに、参照点215に相対して前部剛体205の固定位置に配置される。図2Aの例では、参照点215は、IMU130の中心に配置される。各ロケータ120は、撮像デバイス135によって検出可能な光を発する。ロケータ120又はロケータ120の部分は、図2Aの例では、前部剛体205の前側220A、上側220B、下側220C、右側220D、及び左側220Eに配置される。
【0040】
図2Bは、前部剛体205及び後部剛体230を含むVRヘッドセット225の実施形態のワイヤ図である。図2Bに示されるVRヘッドセット225は、前部剛体205及び後部剛体230がバンド210を介して一緒に結合されるVRヘッドセット105の実施形態である。バンド210は非剛性(例えば、弾性)であり、したがって、前部剛体205は後部剛体230に剛性結合されない。したがって、後部剛体230は、前部剛体205に関連して移動し得、特に、参照点215に関連して移動し得る。図3及び図5と併せて更に後述するように、後部剛体230は、前部剛体205が撮像デバイス135にとって不可視である場合であっても、VRコンソール110がVRヘッドセット105の追跡を維持できるようにする。後部剛体230のロケータ120は、互いに相対するとともに、前部剛体205の参照点215に相対して固定位置に配置される。図2Bの例では、後部剛体230の1つ又は複数のロケータ120又はロケータ120の部分は、後部剛体230の前側235A、上側235B、下側235C、右側235D、及び左側235Eに配置される。
【0041】
図3は、VRコンソール110に含まれる追跡モジュール150の一実施形態のブロック図である。追跡モジュール150の幾つかの実施形態は、本明細書に記載されるモジュールとは異なるモジュールを有する。同様に、図3と併せて説明される機能は、本明細書に記載されるものとは異なる様式で構成要素に分散し得る。図3の例では、追跡モジュール150は、追跡データベース310、初期化モジュール320、推定モジュール330、パラメータ調整モジュール340、及びモニタリングモジュール350を含む。
【0042】
追跡データベース310は、1つ又は複数のVRヘッドセット105を追跡するために、追跡モジュール150によって使用された情報を記憶する。例えば、追跡データベース310は、1つ又は複数のヘッドセットモデル、1つ又は複数の較正パラメータ値、又はVRヘッドセット105の追跡に適する任意の他の情報を記憶する。図1に関して上で参照したように、ヘッドセットモデルは、互いに対し且つ参照点215に対する各ロケータ120の理想的な位置を記述する。各ロケータ120には、ヘッドセットモデル内の対応するモデルロケータ(model locator)が関連付けられ、したがって、ロケータ120に対応するモデルロケータは、ヘッドセットモデルに従ってロケータ120の理想的な位置を示す。さらに、ヘッドセットモデルは、異なる較正パラメータの関数として、ロケータ120のモデル位置又は参照点215の変化を示す情報を含み得る。幾つかの実施形態では、ヘッドセットモデルは、互いに対する後部剛体230上のロケータ120のモデル位置を記述し得、後部参照点のモデル位置は、後部剛体230の位置、前部剛体205上の参照点215に相対する後部参照点のデフォルト位置、参照点215に相対して後部剛体230上のロケータ120のモデル位置のデフォルト位置、又はそれらの何らかの組合せを示す。
【0043】
較正パラメータは、VRヘッドセット105の較正に影響を及ぼすように調整し得るパラメータである。較正パラメータの例としては、撮像パラメータ、IMUパラメータ、又はそれらの何らかの組合せが挙げられる。撮像パラメータ及びIMUパラメータは、較正パラメータに含まれ得る。撮像パラメータの例としては、焦点距離、焦点、フレームレート、ISO、シャッタ速度、アパーチャ、カメラの向き、ソースアクティブ化(撮像デバイス135が反射ロケータ120を照明するソースを使用する実施形態において)、撮像デバイス135のレンズの中心からの撮像センサのオフセット、レンズ歪みパラメータ、センサ温度、又は低速較正データを出力するために撮像デバイス135によって使用される任意の他のパラメータが挙げられる。IMUパラメータは、高速較正データの収集を制御するパラメータである。IMUパラメータの例としては、位置センサ125からの測定信号の1つ又は複数のサンプリングレート、高速較正データの出力レート、高速較正データを生成するIMU130によって使用される他の適するパラメータ、IMU130への給電をオン又はオフにするコマンド、初期位置を参照点の現在位置に更新するコマンド、オフセット情報(例えば、位置情報へのオフセット)、又は任意の他の適する情報が挙げられる。
【0044】
初期化モジュール320は、追跡データベース310から検索される較正パラメータ等の追跡データベース310からの情報を使用して、システム環境100を初期化する。システム環境100が前に較正されていなかった実施形態では、デフォルト較正パラメータが追跡データベース310から検索される。システム環境100が前に較正された場合、調整較正パラメータが追跡データベース310から検索され得る。初期化モジュール320は、検索された較正パラメータをIMU130及び/又は撮像デバイス130に提供する。
【0045】
推定モジュール330は、VRヘッドセット105及び/又はIMU130から低速較正データ及び/又は高速較正データを受信する。低速較正データは、低速データレート(例えば、20Hz)で撮像デバイス135から受信される。これとは対照的に、高速較正データは、低速較正データが受信されるデータレートよりもはるかに高速であるデータレート(例えば、200Hz以上)でIMU130から受信される。したがって、高速較正データは、低速較正データに含まれるVRヘッドセット105の画像間のVRヘッドセット105の位置情報を特定するのに使用し得る。
【0046】
追跡データベース310からのヘッドセットモデル及び撮像デバイス135からの低速較正データを使用して、推定モジュール330は、撮像デバイス135によって捕捉された画像から識別されたVRヘッドセット105の1つ又は複数のロケータに対応するモデルロケータを識別する。推定モジュール330は、低速較正データ内の画像からロケータ情報を抽出し、ロケータ情報は、所与の画像内の互いに相対する観測ロケータ120の位置を示す。所与の画像において、ロケータ情報は、画像内の観測ロケータ120間の相対位置を示す。例えば、画像が観測ロケータA、B、及びCを示す場合、ロケータ情報は、AとB、AとC、及びBとCの相対距離を示すデータを含む。上述したように、ヘッドセットモデルは、VRヘッドセット105のロケータの1つ又は複数のモデル位置を含む。推定モジュール330は、観測ロケータ120の相対位置をモデルロケータの相対位置と比較して、VRヘッドセット105の観測ロケータ120とヘッドセットモデルからのモデルロケータとの対応性を特定する。複数の剛体を含むVRヘッドセット225に対する較正が行われている実施形態では、前部剛体205及び後部剛体230の観測ロケータに対応するモデルロケータは、低速較正データの画像の少なくとも1つから識別される。
【0047】
さらに、ヘッドセットモデル並びにモデルロケータ及び観測ロケータ120を示す情報に基づいて、推定モジュール330は、観測ロケータ120の推定位置を生成する。推定モジュール330は、ヘッドセットモデルと、モデルロケータ及び観測ロケータ120を示す情報とに基づいて射影行列を特定する。射影行列は、ヘッドセットモデルによって記述されるロケータ120の理想的な位置を、撮像デバイス135の、観測ロケータ120の画像によって示される画像平面上の位置に変換する数学的構造である。したがって、推定モジュール330は、射影行列(projection matrix)と、ヘッドセットモデルにおいて記述されるモデルロケータの位置とを使用して観測ロケータ120の位置を推定する。1つ又は複数の較正パラメータは、射影行列に適用し得、それにより、較正パラメータの1つ又は複数への調整は、観測ロケータ120の推定位置を変更する。
【0048】
推定モジュール330は、中間位置情報、中間速度情報、中間加速度情報、又はそれらの何らかの組合せも高速較正データから抽出する。高速較正データは、低速較正データよりも高い周波数で受信されるため、高速較正データから抽出された情報により、推定モジュール330は、低速較正データからの画像間の時間期間での位置情報、速度情報、又は加速度情報を特定することができる。中間推定位置情報(例えば、中間推定位置)は、画像に関連付けられた時刻又は画像に関連付けられた時刻と低速較正データからの後続画像に関連付けられた時刻との間の時間での参照点215の位置を示す。中間速度情報は、画像に関連付けられた時刻と低速較正データからの後続画像に関連付けられた時刻との間の時間での参照点215に関連付けられた速度ベクトルを示す。中間加速度情報は、画像に関連付けられた時刻と低速較正データからの後続画像に関連付けられた時刻との間の時間での参照点215に関連付けられた加速度ベクトルを示す。幾つかの実施形態では、推定モジュール330は、中間加速度情報を使用して、又は中間速度情報から中間推定位置情報を取得するように構成される。推定モジュール330は、中間位置をパラメータ調整モジュール340に提供する。
【0049】
パラメータ調整モジュール340は、1つ又は複数の較正パラメータを調整して、観測ロケータ120の調整推定位置と対応するモデルロケータの位置との相対距離が閾値未満になるまで、推定位置を調整する。観測ロケータ120の推定位置と対応するモデルロケータの位置との相対距離が閾値(例えば、1mm)に等しいか、又は超える場合、パラメータ調整モジュール340は、相対距離が閾値未満になるまで、1つ又は複数の較正パラメータ(例えば、撮像パラメータ)を調整する。例えば、パラメータ調整モジュール340は、他の較正パラメータを一定に保ちながら、1つの較正パラメータを変更して、観測ロケータ120の推定位置と対応するロケータの位置との閾値距離未満になる変更中の較正パラメータの値を特定する。次に、パラメータ調整モジュール340は、較正パラメータを特定された値に修正し、少なくとも閾値数の観測ロケータ120の調整推定位置と対応するモデルロケータの位置との相対距離が、閾値未満になるまで、他の較正パラメータを一定に保ちながら、個々の較正パラメータの値を変更するプロセスを繰り返し得る。観測ロケータ120の調整推定位置を使用して、パラメータ調整モジュール340は、低速較正データの1つ又は複数のフレームの参照点215の較正位置を生成する。
【0050】
VRヘッドセット105が2つの剛体(例えば、VRヘッドセット225)を含む実施形態では、パラメータ調整モジュール340は、前部剛体205の参照点215に相対する後部剛体230の位置を特定する。幾つかの実施形態では、パラメータ調整モジュール340は、後部剛体230の観測ロケータ120と、対応するモデルロケータとを使用して、後部剛体230の後部参照点を識別する。次に、パラメータ調整モジュール340は、前部剛体205の参照点215に相対する後部参照点の位置を識別する。代替的には、VRコンソール110は、前部剛体205の参照点215に相対する後部剛体230の各観測ロケータ120の位置を識別する。幾つかの実施形態では、パラメータ調整モジュール340は、各剛体205、230の1つ又は複数の側で閾値数のロケータが撮像された(観測ロケータ)か、又は各剛体205、230の全ての側で閾値数のロケータが撮像された(観測ロケータ)との判断に応答して、参照点215の較正位置を生成する。例えば、剛体205、230の側で撮像された閾値数のロケータは、ゼロ以上である。閾値数のロケータが撮像されない場合、パラメータ調整モジュール340は、VRヘッドセット105又は別の適する構成要素を介して、VRヘッドセット105を撮像デバイス135に相対して特定の方向に向けるか、又は閾値数のロケータが撮像されるまで、VRヘッドセット105を動かし続けるようにユーザに促し得る。
【0051】
パラメータ調整モジュール340は、参照点215の位置を予測する予想関数も特定し、高速較正データからの参照点215の中間推定位置が、参照点215の予測位置の閾値内になるまで、1つ又は複数の較正パラメータを調整する。例えば、予測関数は、一連の較正位置に曲線を近似することによって生成される。次に、パラメータ調整モジュール340は、参照点215の中間推定位置と参照点215の予測位置との距離が閾値未満になるまで、1つ又は複数の較正パラメータを調整する。例えば、パラメータ調整モジュール340は、参照点215の中間推定位置と参照点215の予測位置との距離が1mm以下になるまで、IMU140のサンプリングレートを増大させ得る。他の実施形態では、パラメータ調整モジュール340は、画像に関連付けられた参照点215の各中間推定位置と較正位置(例えば、CP)との距離が、画像に関連付けられた参照点215の較正位置(例えば、CP)と後続画像に関連付けられた参照点215の較正位置(例えば、CP)との距離値未満であるように、1つ又は複数の較正パラメータを調整する。
【0052】
幾つかの実施形態では、パラメータ調整モジュール340は、IMU130の初期位置を参照点215の次の較正位置に更新する。図1と併せて上述し、図6と併せて後述するように、IMU130は、IMU130によって前に特定された参照点215の位置に相対する高速較正データを収集する。したがって、ドリフトエラーは、IMU130が、初期位置を較正位置に更新せずにデータを収集する時間が長いほど、増大する。パラメータ調整モジュール340は、中間推定位置を更新閾値と比較する。中間推定位置の1つ又は複数が更新閾値を超える場合、パラメータ調整モジュール340は、次の較正位置に関連付けられた位置として、初期位置を更新する命令をIMU130に通信する。代替的には、較正位置を特定した後、パラメータ調整モジュール340は、初期位置を特定された較正位置に更新するようにIMU130に命令する。パラメータ調整モジュール340は、調整較正パラメータの値を追跡データベース310に記憶し、調整較正パラメータをVRコンソール110内の他の構成要素に提供することもできる。
【0053】
モニタリングモジュール350は、較正の損失についてシステム環境100をモニタする。様々な実施形態では、モニタリングモジュール350は、観測ロケータ120の調整推定位置と対応するモデルロケータの位置との相対距離をモニタする。観測ロケータの調整推定位置と対応するモデルロケータの位置との相対距離が閾値(例えば、1mm)未満である場合、モニタリングモジュール350は、観測ロケータ120の位置から特定された参照点215の較正位置をVRエンジン155に提供する。これとは対照的に、観測ロケータと対応するモデルロケータとの相対距離が閾値(例えば、1mm)を超える場合、モニタリングモジュール350は、較正が失われたと判断し、システム環境100を再較正するようにパラメータ調整モジュール340に促す。
【0054】
中間推定位置と対応する予測位置とのパラメータ調整モジュール340によって特定される相対距離をモニタするために、予測位置と対応する中間推定位置との距離が閾値(例えば、1mm)未満である場合、モニタリングモジュール350は、中間推定位置をVRエンジン155に提供する。幾つかの実施形態では、モニタリングモジュール350は、高速較正データから抽出された中間速度情報又は中間加速度情報をVRエンジン155に提供することもできる。これとは対照的に、予測位置と対応する中間推定位置との距離が閾値を超える場合、モニタリングモジュール350は、較正が失われたと判断し、システム環境100に較正を再確立させる。
【0055】
幾つかの場合、後部剛体230のロケータ120のみが、撮像デバイス135にとって可視である。後部剛体230のロケータ120のみが撮像デバイス135にとって可視である場合、幾つかの実施形態では、(例えば、後部剛体230の観測ロケータ120から生成される)後部剛体230の推定位置と、(例えば、高速較正データを使用して生成し得る)後部剛体230の予測位置との差が、閾値よりも大きいとき、モニタリングモジュール350は、較正が失われたと判断し、システム環境100に較正を再確立させる。さらに、後部剛体230の推定位置と後部剛体230の予測位置との差が、閾値よりも大きい場合、VRコンソール110は、後部剛体230の推定位置と後部剛体230の予測位置との距離が閾値未満であるような一時的なオフセット値で、後部剛体230の予測位置を調整する。次に、モニタリングモジュール350は、一時的なオフセット値(又は続けて生成される一時的なオフセット値)を使用して、前部剛体205と後部剛体230との間で再較正が行われ得るまで、後部剛体230の位置をより正確に予測し得る。代替的には、後部剛体230のロケータ120の推定位置と、参照点215に相対する対応するモデルロケータの位置との差が、閾値よりも大きい場合、モニタリングモジュール350は、較正が失われたと判断し、システム環境100に較正を再確立させる。幾つかの実施形態では、低速較正データが、前部剛体205の閾値数のロケータと、後部剛体230の閾値数のロケータとを含む画像を含む場合、追跡モジュール150は再較正を開始する。さらに、幾つかの実施形態では、追跡が失われると、モニタリングモジュール350は、前部剛体205及び後部剛体230の両方のロケータが可視であるようにVRヘッドセット105を調整するようにユーザに自動的に促す。
【0056】
仮想現実システムの較正
図4は、図1と併せて上述したシステム環境100等のVRシステムを較正するプロセスの一実施形態のフローチャートである。他の実施形態では、プロセスは、図4に示されるステップとは異なる、追加の、又はより少数のステップを含む。さらに、幾つかの実施形態では、図4と併せて説明されるステップは、異なる順序で実行してもよい。
【0057】
VRコンソール110は、1つ又は複数の較正パラメータを使用してシステム環境を初期化する(410)。例えば、VRコンソール110は、追跡データベース310から、VRヘッドセット105に関連付けられた1つ又は複数の較正パラメータを検索する。幾つかの実施形態では、VRコンソール110は、撮像デバイス135又はIMU130が特定のVRヘッドセット105について前に較正された場合、追跡データベース310から調整較正パラメータ値を検索する。撮像デバイス135又はIMU130がVRヘッドセット105を前に較正していなかった場合、VRコンソール110は、追跡データベース310からデフォルト較正パラメータを検索する。VRコンソール110は、較正パラメータをIMU130又は撮像デバイス135に提供する。
【0058】
VRコンソール110は、撮像デバイス135から低速較正データを受信し、IMU130から高速較正データを受信する(420)。低速較正データは、VRヘッドセット105のロケータ120の1つ又は複数を含む一連の画像を含む。低速較正データからの画像に含まれるロケータ120は、本明細書では、「観測ロケータ(observed locator)」と呼ばれる。高速較正データは、参照点215(例えば、IMU130の中心)の1つ又は複数の中間推定位置を含み得る。他の実施形態では、高速較正データは、中間加速度情報及び/又は中間速度情報を含み、これ(ら)から、VRコンソール110は参照点215の1つ又は複数の中間推定位置を特定する。
【0059】
少なくとも部分的に、低速較正データ及びヘッドセットモデルに基づいて、VRコンソール110は、ヘッドセットモデル内のロケータであるモデルロケータを識別する(430)。VRコンソール110は、低速較正データから互いに相対する観測ロケータ120の位置を示すロケータ情報を抽出し、ロケータ情報を追跡データベース310から検索されたヘッドセットモデルと比較して、観測ロケータに対応するモデルロケータを識別する(430)。モデルロケータは、ヘッドセットモデルの構成要素であり、したがって、観測ロケータに関連付けられたモデルロケータの識別430により、VRコンソール110は続けて、観測ロケータの位置を観測ロケータに関連付けられたモデルロケータのヘッドセットモデルからの理想的な位置と比較することができる。
【0060】
ヘッドセットモデルを使用して、VRコンソール110は、観測ロケータ120の1つ又は複数の推定位置を生成する(440)。ヘッドセットモデルは、ロケータ120と参照点215との間の理想的な位置決めを記述する。様々な実施形態では、VRコンソール110は、ヘッドセットモデル及びロケータ情報を使用して、ヘッドセットモデルでの理想的な位置を撮像デバイス135の画像平面上の位置に変換する射影行列を特定する。VRコンソール110は、射影行列を使用して、観測ロケーションの位置を推定する。したがって、観測ロケータ120の推定位置は、低速較正データからの画像の画像平面上の観測ロケータ120の理想的な位置を識別する。
【0061】
少なくとも部分的に、1つ又は複数の観測ロケータ120の推定位置と、1つ又は複数の観測ロケータ120に対応するモデルロケータの位置との相対距離に基づいて、VRコンソール110は、観測ロケータ120の推定位置と、ヘッドセットモデルからの対応するモデルロケータの位置との相対距離が、閾値(例えば、1mm)未満であるように、1つ又は複数のロケータ120の推定位置を調整する1つ又は複数の較正パラメータを調整する(450)。較正パラメータの調整は、射影行列に影響を及ぼし(例えば、焦点距離等を変更し)、したがって、1つ又は複数の較正パラメータの変更は、観測ロケータ120の推定位置に影響を及ぼし得る。観測ロケータ120の推定位置と対応するモデルロケータの位置との距離が、閾値以上である場合、一実施形態では、VRコンソール110は、他の較正パラメータを一定に保ちながら、1つの較正パラメータを調整して、閾値未満の観測ロケータ120の推定位置と対応するモデルロケータの位置との距離を生じさせる調整中の較正パラメータの値を特定する(450)。次に、較正パラメータは特定された値に固定され得、その間、別の較正パラメータは、追加のロケータ120の推定位置と追加のロケータに対応するモデルロケータの追加の位置との距離が閾値未満であるように変更される。様々な較正パラメータは、少なくとも閾値数の観測ロケータ120の調整推定位置と対応するモデルロケータの位置との相対距離が閾値未満であるように、上述したように調整し得る(450)。少なくとも閾値数の観測ロケータ120の推定位置と対応するモデルロケータの位置との距離が、閾値未満である場合、較正パラメータは調整されない(450)。
【0062】
VRコンソール110は、閾値数の観測ロケータ120が前部剛体205の各側(すなわち、前側220A、上側220B、下側220C、右側220D、及び左側220E)からのものであるか否かを判断する(460)。閾値数の観測ロケータ120が各側に関連付けられている場合、VRコンソール110は、観測ロケータの調整推定位置を使用して、低速較正データの1つ又は複数のフレームの参照点215の較正位置を生成する(470)。VRヘッドセット105が複数の剛体を含む実施形態では、VRコンソール110は、閾値数のロケータが各剛体205、230の1つ又は複数の側で撮像された(観測ロケーション)との判断に応答して、又は各剛体205、230の全ての側で閾値数のロケータが撮像された(観測ロケータ)との判断に応答して、参照点215の較正位置を生成する。閾値数の観測ロケータ120が各側に関連付けられていない場合、VRコンソール110は、VRヘッドセット105の1つ又は複数の側からのロケータを含む低速較正データが捕捉可能なように、VRヘッドセット105を再位置決めするプロンプトをVRヘッドセット105又は別の構成要素を介してユーザに通信し得る。
【0063】
VRコンソール110は、高速較正データから受信したVRヘッドセット105の中間推定位置が、VRヘッドセット105又は参照点215の予測位置の閾値距離内になるまで、1つ又は複数の較正パラメータを更に調整し(480)、捕捉位置は、低速較正データからの様々な画像に関連付けられた参照点215の較正位置から特定される。幾つかの実施形態では、VRコンソール110は、低速較正データからの異なる画像に関連付けられた参照点215の較正位置を使用して、予測関数を生成する(例えば、曲線近似により)ことにより、参照点215の予測位置を特定する。VRコンソール110は、参照点215の中間推定位置と参照点215の予測位置との距離が閾値距離未満になるまで、較正パラメータの1つ又は複数を調整する。例えば、VRコンソール110は、参照点215の中間推定位置と参照点215の予測位置との距離が全て1mm以下になるまで、又は参照点215の少なくとも閾値数の中間推定位置と参照点215の予測位置との距離が1mm未満になるまで、IMU130のサンプリングレートを増大させ得る。他の実施形態では、VRコンソール110は、低速較正データからの画像に関連付けられた参照点215の較正位置と、低速較正データからの後続画像に関連付けられた参照点215の較正位置との間の位置として、参照点215の予測位置を特定する。次に、VRコンソール110は、画像に関連付けられた参照点215の各中間推定位置と較正位置(例えば、CP)との距離が、画像に関連付けられた参照点215の較正位置(例えば、CP)と後続画像に関連付けられた参照点215の較正位置(例えば、CP)との距離未満であるように、1つ又は複数の較正パラメータを調整する(480)。さらに、VRコンソール110は、参照点215の較正位置であるようにIMU130の初期位置を更新し得る。
【0064】
幾つかの実施形態では、VRコンソール110は、調整較正パラメータの値を追跡データベース310に記憶するか、又は調整較正パラメータの値をVRコンソール110内の他の構成要素に提供する。調整較正値は、システム環境100の後続動作での較正時間を低減し、ユーザ経験を改善する。
【0065】
VRコンソール110は、較正の損失についてシステム環境100をモニタする(490)。例えば、VRコンソール110は、観測ロケータ120の調整推定位置と対応するモデルロケータの位置との相対距離をモニタする。観測ロケータ120の調整推定位置と対応するモデルロケータの位置との相対距離が閾値(例えば、1mm)未満である場合、VRコンソール110は、較正位置をVRエンジン155に提供する。これとは対照的に、観測ロケータの推定位置と対応するモデルロケータの位置との相対距離が、閾値(例えば、1mm)を超える(又は以上である)場合、VRコンソール110は、較正が失われたと判断し、低速較正データ及び高速較正データを受信し(420)、上で識別した関数を実行して、システム環境100を再較正する。
【0066】
さらに、VRコンソール110は、参照点215の中間推定位置と参照点215の予測位置との相対距離をモニタする(490)。例えば、参照点215の予測位置の曲線と参照点215の中間推定位置との距離が、閾値距離(例えば、1mm)未満である場合、VRコンソール110は、中間推定位置をVRエンジン155に提供する。幾つかの実施形態では、VRコンソール110は、高速較正データから抽出された中間速度情報又は中間加速度情報もVRエンジン155に提供し得る。これとは対照的に、参照点215の予測位置と参照点215の中間推定位置との距離が、閾値距離を超えるか、又は閾値距離以上である場合、VRコンソール110は、較正が失われたと判断し、低速較正データ及び高速較正データを受信し(420)、上で識別した関数を実行して、システム環境100を再較正する。
【0067】
幾つかの実施形態では、IMU130及び撮像デバイス135は、同時に較正し得る。IMU130及び撮像デバイス135を同時に較正するために、VRコンソール110は、観測ロケータの推定位置を使用して、一連の画像の参照点215の位置を推定する。さらに、VRコンソール110は、IMU130及び撮像デバイス135を較正するとき、低速較正データ内の画像に対応する特定の時刻値(time value)での参照点215の中間推定位置を含む高速較正データを使用する。IMU130及び撮像デバイス135の較正パラメータを同時に調整する場合、VRコンソール110は、(1)観測ロケータの調整推定位置と対応するモデルロケータの位置との相対距離が閾値未満であるように、観測ロケータの推定位置を調整し、(2)低速較正データ内の画像に対応する特定の時刻値での参照点の推定位置と、モデルロケータから特定されるモデル参照点の位置との相対距離が閾値未満であるように、参照点の推定値を調整する。
【0068】
図5は、システム環境100に含まれる仮想現実ヘッドセット225の2つの剛体間に較正を再確立するプロセスの一実施形態を示すフローチャートである。他の実施形態では、プロセスは、図5に示されるステップとは異なる、追加の、又はより少数のステップを含む。さらに、幾つかの実施形態では、図5と併せて説明されるステップは、異なる順序で実行してもよい。
【0069】
VRコンソール110は、VRヘッドセット225の前部剛体205の前部閾値数のロケータ120と、VRヘッドセット225の後部剛体230の後部閾値数(例えば、少なくとも1つ)のロケータ120とを示す画像を含む低速較正データを受信する(510)。低速較正データからの画像に含まれるロケータ120は、本明細書では「観測ロケータ」と呼ばれる。図2図4と併せて上述したように、VRコンソール110は、撮像デバイス135から低速較正データを受信し、IMU130から高速較正データを受信する(510)。高速較正データは、中間加速度情報及び/又は中間速度情報も含み得、これ(ら)から、VRコンソール110はVRヘッドセット225の参照点215の1つ又は複数の中間推定位置を特定する。
【0070】
少なくとも部分的に、低速較正データ及びヘッドセットモデルに基づいて、VRコンソール110は、モデルロケータを識別し(520)、モデルロケータはヘッドセットモデル内のロケータである。VRコンソール110は、低速較正データからの互いに相対する観測ロケータ120の位置を示すロケータ情報を抽出し、ロケータ情報を追跡データベース310から検索されるヘッドセットモデルと比較して、観測ロケータ120に対応するモデルロケータを識別する(520)。画像の少なくとも1つでは、VRヘッドセット225の前部剛体205及び後部剛体230の観測ロケータに対応するモデルロケータが識別される。モデルロケータは、ヘッドセットモデルの構成要素であり、したがって、観測ロケータに関連付けられたモデルロケータを識別すること(520)により、VRコンソール110は、観測ロケータの位置を観測ロケータに関連付けられたモデルロケータのヘッドセットモデルからの理想的な位置と続けて比較することができる。
【0071】
ヘッドセットモデルを使用して、VRコンソール110は、観測ロケータ120の1つ又は複数の推定位置を生成する(530)。ヘッドセットモデルは、ロケータ120と参照点215との間の理想的な位置決めを記述する。様々な実施形態では、VRコンソール110は、ヘッドセットモデル及びロケータ情報を使用して、ヘッドセットモデル内の理想的な位置を撮像デバイス135の画像平面上の位置に変換する射影行列を特定する。VRコンソール110は、射影行列を使用して、観測ロケータ120の位置を推定する。したがって、観測ロケータ120の推定位置は、低速較正データからの画像の画像平面上の観測ロケータ120の理想的な位置を識別する。
【0072】
少なくとも部分的に、1つ又は複数の観測ロケータ120の推定位置と1つ又は複数の観測ロケータ120に対応するモデルロケータの位置との相対距離に基づいて、VRコンソール110は、第1の剛体205の観測ロケータの推定位置と対応するモデルロケータの位置との相対距離が閾値(例えば、1mm)未満となるように調整する(540)。較正パラメータの調整は射影行列に影響を及ぼし(例えば、焦点距離等を変更し)、したがって、1つ又は複数の較正パラメータの変更は、観測ロケータ120の推定位置に影響を及ぼし得る。観測ロケータ120の推定位置と対応するモデルロケータの位置との距離が、閾値以上である場合、一実施形態では、VRコンソール110は、他の較正パラメータを一定に保ちながら、1つの較正パラメータを調整して、閾値未満である観測ロケータ120の推定位置と対応するモデルロケータの位置との距離になる調整中の較正パラメータの値を特定する(540)。較正パラメータの調整540については、図4と併せて更に上述されている。少なくとも閾値数の観測ロケータ120の推定値と対応するモデルロケータの位置との距離が閾値未満である場合、較正パラメータは調整されない(540)。
【0073】
観測ロケータの推定位置と対応するモデルロケータの位置との閾値数の相対距離が閾値未満であるように較正パラメータを調整した(540)後、VRコンソール110は、観測ロケータ120の調整推定位置を使用して、低速較正データの1つ又は複数の画像に関連付けられた参照点215の較正位置を生成する(550)。幾つかの実施形態では、VRコンソール110は、各剛体205、230の1つ又は複数の側の閾値数のロケータが撮像された(観測ロケータ)との判断又は各剛体205、230の全ての側で閾値数のロケータが撮像された(観測ロケータ)との判断に応答して、参照点215の較正位置を生成する。閾値数のロケータ(各剛体205、230の側又は全ての側)が撮像されない場合、VRコンソール110は、VRヘッドセット105又は別の適する構成要素を介して、撮像デバイス135に相対して特定の方向にVRヘッドセット105を向けるか、又は閾値数のロケータが撮像されるまで、VRヘッドセット105を動かし続けるように、ユーザに促し得る。
【0074】
VRコンソール110は、参照点215に相対する後部剛体230の位置も特定する(560)。幾つかの実施形態では、VRコンソール110は、観測ロケータ120と、対応するモデルロケータとを使用して、後部剛体230の後部参照点を識別する。次に、VRコンソール110は、後部参照点が、位置ベクトルにより参照点215に相対して位置決めされるように、前部剛体205の参照点215に相対する後部参照点の位置を識別する。代替的には、VRコンソール110は、参照点215に相対して後部剛体230の各観測ロケータの位置を識別し、したがって、後部剛体230の各観測ロケータの位置は、それ自体の位置ベクトルにより、参照点215に相対して位置決めされる。
【0075】
VRコンソール110は、参照点215の中間推定位置が参照点215の予測位置の閾値距離内にあるように、1つ又は複数の較正パラメータを調整する(570)。参照点215の中間推定位置が参照点の予測位置の閾値内にあるような較正パラメータの調整については、図4と併せて更に上述されている。1つ又は複数の較正パラメータの調整570後、VRコンソール110は、図4と併せて上述したように、システム環境100の較正の損失についてモニタする(580)。
【0076】
較正の損失についてモニタする(580)とき、VRコンソール110は、第1の剛体205、後部剛体230、又はそれらの何らかの組合せのロケータ120の観測位置を含み得る低速較正データからの画像を使用する。幾つかの実施形態では、観測ロケータ120の位置と対応するモデルロケータの位置との間の閾値は、観測ロケータ120が配置される剛体に基づいて異なり得る。例えば、閾値は、前部剛体205の観測ロケータ120では1mmであり得、後部剛体230の観測ロケータ120では2mmであり得る。
【0077】
さらに、幾つかのシナリオでは、撮像デバイス135は、前部剛体205のロケータ120を見ることはできないが、後部剛体230のロケータを見ることはできる。これらのシナリオでは、追跡は、図6に関して後述するプロセスを使用してモニタされる。
【0078】
低速較正データが、前部剛体205の閾値数のロケータと、後部剛体230の閾値数のロケータとを含む画像を含む場合、図5と併せて上述したステップが繰り返されて、システム環境100の較正を再確立する。幾つかの実施形態では、追跡が失われると、VRコンソール110は、前部剛体205及び後部剛体230の両方のロケータが撮像デバイス135にとって可視であるように、VRヘッドセット105を調整するようにユーザに自動的に促す。ユーザに提示されるプロンプトは、前部剛体205及び後部剛体230の両方のロケータが撮像デバイス135にとって可視であるようにVRヘッドセット105を位置決めする特定の指示をユーザに提供し得る。
【0079】
図6は、システム環境100に含まれる仮想現実ヘッドセット225の2つの剛体間の位置関係を維持するプロセスの一実施形態を示すフローチャートである。他の実施形態では、プロセスは、図6に示されるステップとは異なる、追加の、又はより少数のステップを含む。さらに、幾つかの実施形態では、図6と併せて説明されるステップは、異なる順序で実行してもよい。
【0080】
VRコンソール110は、撮像デバイス135から低速較正データを受信する(610)。低速較正データは、画像時刻値(image time value)に関連付けられ、撮像デバイス135にとって可視の後部剛体230の観測ロケータ120のみを有する画像を含む一連の画像を含む。画像時刻値は、画像が撮像デバイス135によって捕捉されたときの時刻値である。さらに、VRコンソール110は、IMU130から、画像時刻値を含む一連の時刻値での参照点215の中間推定位置を含む高速較正データを受信する(620)。
【0081】
低速較正データに基づいて、VRコンソール110は、画像時刻値での後部剛体230の観測位置を特定する(630)。後部剛体230の観測位置を特定する(620)ために、VRコンソール110は、低速較正データから、互いに相対する後部剛体230の観測ロケータ120の位置を示すロケータ情報を抽出し、ロケータ情報を追跡データベース310から検索されるヘッドセットモデルと比較して、観測ロケータ120に対応するモデルロケータを識別する。モデルロケータを識別した後、VRコンソール110は、各モデルロケータに対応する観測ロケータ120を特定し、観測ロケータ120の位置を使用して、後部剛体230の後部参照点を特定する。幾つかの実施形態では、後部剛体230の観測位置は、後部参照点の位置である。代替の実施形態では、後部剛体230の観測位置は、観測ロケータの1つ又は複数の観測位置であり得る。
【0082】
VRコンソール110は、高速較正データ及び位置ベクトルを使用して、画像時刻値での後部剛体230の予測位置を特定する(640)。位置ベクトルは、前部剛体205と後部剛体230との較正オフセットを示す。例えば、位置ベクトルは、前部剛体205に関連付けられた参照点215と、後部剛体230に関連付けられた後部参照点との間の較正オフセットを示す。さらに、幾つかの実施形態では、位置ベクトルは、参照点215と後部剛体230の異なるロケータとの間の相対較正オフセットをそれぞれ示す1つ又は複数のサブベクトルを含み得る。
【0083】
高速較正データから、VRコンソール110は、前部剛体205の参照点215の中間推定位置を特定する。幾つかの実施形態では、VRコンソール110は、位置ベクトルに基づいて、参照点215の位置に相対する位置として、後部剛体230の予測位置を特定する。例えば、位置ベクトルは、参照点215への後部剛体230の後部参照点の相対位置決めを識別する。代替的には、位置ベクトルは、参照点215に相対する後部剛体230の1つ又は複数のロケータ120(観測ロケータを含む)の相対位置決めを識別する。
【0084】
VRコンソール110は、観測位置と予測位置との差が閾値(例えば、1mm)を超えるか否かを判断する(650)。差が閾値未満の場合、VRヘッドセット225の追跡は維持され、低速較正データが受信され(610)、プロセスは上述したように進む。しかし、後部剛体230の観測位置と後部剛体230の予測位置との間の差が閾値を超える場合、VRコンソール110は、VRヘッドセット105の追跡が失われたと判断し、オフセット値により予測位置を調整する(660)。オフセット値は、後部剛体230の観測位置と後部剛体230の予測位置との差が閾値未満であるように決定される。例えば、VRコンソール110は、オフセット値によって変更された位置ベクトルを使用して、高速較正データからの後部剛体230の位置をより正確に特定する。代替的には、VRコンソール110は、位置ベクトルを変更せずにオフセット値に基づいて推定中間位置をオフセットする命令をIMU130に通信する。
【0085】
高速較正データ及び調整ベクトルに基づいて、VRコンソール110は、再較正が行われるまで(例えば、図5に関連して更に上述したように)、後部剛体の後続予測位置を特定する(670)。幾つかの実施形態では、追跡が失われる場合、VRコンソール110は、前部剛体205及び後部剛体230の両方のロケータが撮像デバイス135に可視であるようにVRヘッドセット105を調整するようユーザに促す。ユーザに提示されるプロンプトは、前部剛体205及び後部剛体230の両方のロケータが撮像デバイス135にとって可視であり、それにより、図5を参照して詳細に上述した再較正を容易にするようにVRヘッドセット105を位置決めする特定の命令をユーザに提供し得る。
【0086】
図7は、仮想現実ヘッドセット105の一連の較正位置を示す例としてのグラフ700を示す。図7では、縦軸は位置を表し、横軸は時間を表す。グラフ700は、時間T、T、及びTそれぞれでのVRヘッドセット105の参照点の一連の較正位置710A〜710Cを含む。グラフ700は、参照点の一連の中間推定位置715A〜715D及び720A〜720Hも含む。較正位置710A〜710Cは、撮像デバイス135からの低速較正データを使用して生成され、中間推定位置715A〜715D及び720A〜720Hは、VRヘッドセット105に含まれるIMU130からの高速較正データを使用して生成される。なお、較正位置710A〜710C及び中間推定位置715A〜715Dの相対時間尺度は異なり、中間推定位置715A〜715D及び720A〜720Hは、較正位置710A〜710Cよりも頻繁に特定される。
【0087】
グラフ700は、参照点の予測位置を示す予測関数によって示される予測位置曲線725を示す。予測関数は、較正位置710A〜710Cに曲線を近似し、近似曲線を示す関数を特定することによって生成される。較正位置710A〜710Cから位置関数を特定するために、任意の適する方法が使用可能である。
【0088】
図7の例では、中間推定位置715A〜715Dは、較正パラメータの調整前に高速較正データを使用して特定される初期中間推定位置である。中間推定位置715Aは、図7の予測位置曲線に比較的近いが、時間が進むにつれて、予測位置曲線725から離れて動き、図7の中間推定位置715Dは、予測位置曲線725から最も離れる。予測位置曲線と中間推定位置との差は、実際のユーザの動き、ドリフトエラー、及び追加の要因の組合せを原因とし得る。上述したように、IMU130は、前に特定された位置に相対して中間推定位置を特定するため、エラーは蓄積され、時間の経過に伴って予測位置曲線725と中間推定位置715とのずれが大きくなる。ドリフトエラーを考慮するために、VRコンソール110は、後続較正位置としてIMU130の初期位置を更新し得る。IMU130は次に、更新された初期位置及び初期位置後に特定された中間推定位置に関して高速較正を生成する。この実施形態では、VRコンソール110は、較正位置710Bとして初期点を更新する。
【0089】
中間推定位置に関連付けられたエラーを低減する別の方法は、中間推定位置が特定される頻度を増大させることによるものである。図7の例では、VRコンソール110は、中間推定位置715A〜715Dの頻度の2倍で中間推定位置720A〜720Hを特定し、中間推定位置720A〜720Hと予測位置曲線725との差をより小さくした。
【0090】
追加の構成情報
剛体の予測不可能な動きを追跡する剛体追跡システムが提示される。そのような剛体追跡システムは、仮想現実、拡張現実、ゲーミング、教育、トレーニング、及びセラピーに有用であり得る。
【0091】
剛体追跡システムの一実施形態は、ユーザの頭部に取り付けられたヘッドマウントディスプレイの動きを追跡することである。この場合、LEDがディスプレイの表面に取り付けられる。慣性測定ユニットが、ディスプレイの内部に搭載され、1つ又は複数のジャイロスコープ等の角速度を測定するセンサを含み得る。慣性測定ユニットは、1つ又は複数の加速度計及び1つ又は複数の磁力計を更に含み得る。別個のカメラが、ユーザに面して、固定位置に配置される。幾つかの実施形態では、剛体追跡システムはVRシステム100である。
【0092】
別の実施形態では、追跡される剛体はユーザの手に保持され得る。これは、例えば、手の位置及び向きを仮想現実経験で維持できるようにし得る。別の実施形態では、カメラは、2つ以上のヘッドセット及び2つ以上の追加のハンドヘルド物体を含め、複数の剛体を追跡し得る。
【0093】
慣性測定ユニットを形成するセンサは、剛体の向きの推定に十分な測定を提供する。これらのセンサは、ジャイロスコープ、加速度計、及び恐らくは磁力計を含む。剛体が静止カメラの視野内にあり、適切な距離のところにある場合、追加の向き情報は推測可能である。さらに、剛体の位置が推測される。追跡方法は、1つ又は複数のカメラを含め、全ての検知源からの測定値を組み合わせ、それにより、剛体の位置及び向きが正確に維持される。剛体追跡システムにとって重要なのは、剛体の表面上のLEDの配置、数、及び変調である。これらの要因は一緒に、剛体の確実で高精度の追跡に繋がる。
【0094】
なお、本発明の様々な特徴は、単独又は組み合わせて実施することができる。本発明のこれら及び他の特徴について、本発明の詳細な説明において図8図10と併せてより詳細に後述する。
【0095】
剛体追跡システムは、2つのソースからのセンサデータを融合することによって機能する:剛体の内部の慣性測定ユニット及び体を見る静止カメラ。最も一般的な実施形態は、剛体が人の頭部に固定されるヘッドマウントディスプレイであるものである。この場合、頭部の位置及び向きは、低い待ち時間及びジッタで追跡されなければならない。ソースによって提供される情報は、慣性測定ユニットが頭部の向きに対して最も強力な制約を提供し、カメラが頭部の位置に対して最も強力な制約を提供するという意味で、相補的なものである。これらは一緒に、頭部の位置及び向きを推定するフィルタに入力を提供する。
【0096】
慣性測定入力の最も重要な構成要素は、高周波3軸ジャイロスコープであり、これは、剛体の角速度を測定する。時間の経過に伴って累積されたセンサデータが数値積分されると、初期向きに対する現在の向きが推定される。時間の経過に伴って累積するデッドレコニングエラー(dead reckoning error)を考慮するために、加速度計又は他のセンサが使用されて、「下」方向を推定して、傾斜エラーを補償し得る。可能な場合、磁力計が慣性測定に含まれて、垂直軸(重力に平行)回りの回転に関する推定向きエラーを補償し得る。これは、剛体がカメラの視野にない場合に特に有用であり、磁力計が用いられない場合、代替として、カメラがこの補正を提供し得る。
【0097】
カメラは、標準レート60Hzでフレームを捕捉するが、他の実施形態では、より高いレート及びより低いレートの両方が利点を提供し得る。解像度は640×480(標準VGA)であり、他の解像度の使用も可能である。画像は、シリアル通信リンク(USB)を介して中央プロセッサに送信される。カメラとVRヘッドセットの間にもシリアルリンクがある。これは、厳密に時間が測られる短い間隔にわたり、シャッタを開閉するようにカメラに命令するために使用される。典型的な時間露出時間は0.1ミリ秒である。レンズは、狭視野、広角、又は魚眼を含め、任意のジオプタ(diopter)のものであり得る。カメラは、レンズの上に赤外線(IR)フィルタを有してもよく、又は有さなくてもよい。
【0098】
ユーザがVRヘッドセットを装着し、現実世界から仮想世界に魔法のようにトランスポートすることを考える。理想的には、現実世界でのユーザの頭部の動きは、ユーザの脳が完全に騙されるように、仮想現実に完璧にミラーリングされるべきである。ユーザの目に仮想現実のイメージが提示される場合、それらは厳密に、ユーザの没入感に基づいてユーザが見ると予期するものに対応すべきである。これを達成するために重要な構成要素は、頭部の追跡であり、これは、センサからデータを収集し、データを処理して、ユーザの頭部がいかに動いているかを特定することを含む。
【0099】
ユーザの頭部及びVRヘッドセットは一緒に、3D空間を通して動く剛体としてみなすことができる。剛体は、最高で6つの自由度(degrees of freedom : DOF)を有し、これは、空間での位置及び向きを完全に指定するために、6つの独立したパラメータが必要なことを意味する。これら6つのパラメータを使用して、体上の任意のポイントの座標を計算することができる。(これは、物理学の歴史の中で解明に長い時間がかかっており、最も大きな功績は18世紀後半のオイラー及びラグランジェによる)。これらのパラメータを選ぶ多くの方法があるが、それらの方法は通常、3つが向きに対応し(体がいかに回転するか)、3つが位置に対応する(体がどこに配置されるか)ように行われる。これは、向きパラメータ:ヨー、ピッチ、及びロールと呼ばれ得る。従来の方法では、これらの3つのパラメータのみが追跡され、3DOF追跡が生成された。これらを使用して、VRシステムは、頭部がどの方向を指しているかを知るが、不都合なことに、ユーザの目がどこに配置され得るかを推測する必要がある。
【0100】
3つのパラメータを使用して、3D回転が頭部モデルのベースに適用され、目は妥当な場所に動くが、それは必ずしも正確であるわけではない。第1の問題は、頭部モデルの測定である(どれだけユーザの頭部が大きいか?)。より大きな問題は、ユーザが頭部のベースを動かすことを妨げるものがないことである。例えば、ユーザが前を見て、横から横に動かす場合、頭部の回転は極わずかであるが、位置は大きく変化する。代替的には、ユーザが、首を固定しながら腰を曲げて前方に屈む場合、頭部のベースは遠くに移動する。頭部ベースのそのような動きを考慮することができないことは、前庭の不一致を生じさせ、これはシミュレータ酔いの原因となり得る。問題は、ユーザの内耳内のセンサが、目が見ている物と一致しないことである。内耳は動きを検出するが、目は動きを見ない。
【0101】
剛体追跡システムは、追加の3つの位置パラメータを推測する必要があるのではなく、センサデータから直接、6つ全てのパラメータを追跡する。これは、6DOF追跡であり、この追跡では、剛体追跡システムは、ユーザが面している方向及び頭部をあちこち動かす際の眼球の位置の両方を高い信頼性で推定することができる。これは、瞳孔間距離(IPD)等の幾つかの一定の人固有の数量が測定されていると仮定する。前庭の不一致の低減に加えて、没入のレベルは信じられないほど高い。ユーザは、頭部を前後に動かして、深度を判断することができる。海賊船の厚板に立っている間、ユーザは屈んで恐ろしい海面を見ることができる。可能性は無限である。
【0102】
ビジョンベースの位置追跡
位置追跡は、VRでの新しい問題ではない。様々な技術を使用して多くの試みがなれてきた:少数を挙げれば、単一又は複数のカメラ、構造化された光、飛行時間、及び磁気センサ。解決策は、コスト、消費電力、精度、必要な計算、及び環境制約によって様々である。そのために、幾つかの実施形態は、単一の安価で低解像度のカメラに頼る位置追跡解決策を記述する。
【0103】
カメラベースの位置追跡は、ポーズ推定(pose estimation)としても知られ、多くのコンピュータビジョン及びロボット工学アプリケーションで重要な問題である。関連する文献は膨大である。しかし、この文献の大半は精度、計算リソース、及び待ち時間に関連していない。砂漠で車をナビゲートする場合、数センチメートルずれた位置推定はかなり良好であり、位置をあまり頻繁に更新する必要はない。これとは対照的に、VRの状況では、追跡は、非常に低い待ち時間で非常に精密でなければならず、レンダリングされるコンテンツから計算リソースを引き離すことはできない。
【0104】
幾つかの実施形態では、位置追跡システムは3つの構成要素から構成される:VRヘッドセット(例えば、VRヘッドセット105)に埋め込まれる1組のマーカ、IMU、及び外部カメラ。図8は、剛体追跡システムの高レベル流れ図を示す。
【0105】
剛体追跡システムは、VRヘッドセットの画像を取得する。画像処理を通して、剛体追跡システムは、マーカの画像位置を抽出する。各マーカはIR LEDである。マーカの画像位置及びVRヘッドセットの既知の3Dモデルに基づいて、剛体追跡システムは6Dポーズを計算する。アルゴリズムは、IMU(ジャイロスコープ、磁力計、及び加速度計)から提供される情報を利用する。ビジョンデータ及びIMUデータを融合した後、最適なヘッドセットポーズを決定する。結果は、レンダリングのためにアプリケーションに提供される。これより、アルゴリズムの個々の構成要素をより詳細に参照する。
【0106】
剛体追跡システムは、可視マーカ(LED)のそれぞれ1つを識別する。あらゆる捕捉画像において、剛体追跡システムは複数の明るいドットを検出する。各ドットはLEDに対応する。剛体追跡システムは、物理的LEDのいずれが各ドットを生成するかを識別する。これが行われると、剛体追跡システムは、VRヘッドセットのLEDの既知の3Dモデルに観測画像射影を関連付ける。この関連付けを用いて、較正カメラを所与として、剛体追跡は、ドットの観測パターンを最良に説明するポーズを推定することができる。
【0107】
分かるように、識別問題は困難である。個々のLEDを識別するために、剛体追跡システムは、それぞれ1つについての幾らかの一意の情報を抽出する。まさにそれを達成する多くの可能な方法がある。例えば、剛体追跡システムは、様々な可視光LEDを使用し、色に基づいて可視光LEDを区別することができる。別の興味深い手法は、幾何学的形状情報を線又は他の形状の形態で埋め込むことである。点がいかに編成されるかに基づいて、剛体追跡システムは、LEDの個々のIDを特定することができる。そして、同一平面にあるマーカのみを可能にする等の空間構成も識別を単純化することができる。
【0108】
これらの概念の大半は、計算的に複雑であり、オクルージョン(occlusion)及びノイズに対してロバストではなく、又は厳密な要件をVRヘッドセットの幾何学的形状及び外観に課す。幾つかの実施形態では、IR LEDが一般的な3D構成に使用される。LEDは、外観に基づいて区別することができない。LEDは全て、明るいドットのように見える。また、LEDの識別を簡易化することができるいかなる特別な幾何学的構成もない。明るいスポットは、画像にかなりたくさんあり、ノイズ、他の光源、及びLEDは全て同じに見える。そして最後に、LEDはVRヘッドセット全体にわたって拡散するため、LEDの幾つかのみが任意の所与の画像で可視であり、幾つかのLEDはユーザの手で隠され得る。
【0109】
LEDは、VRヘッドセットに埋め込まれる。幾つかの実施形態では、解決策は、LEDの輝度の変調に頼る。時間の経過に伴い、各LEDは光の一意のパターンを表示する。LEDは、IRに近いスペクトルで動作するため、人間の目には見えない。しかし、IRスペクトルでは、LEDは非常に明るく、広い照明野(約120度)を有する。カメラは、IR近くの周波数の光に感度を有するように設計され、広視野レンズを有する。これらの特性(明るいLED及び広視野)により、大きな追跡容積が可能になる。
【0110】
ビジョンアルゴリズムは、個々のLEDを検出し、幾つかのフレームにわたり個々のLEDを追跡する。次に、ビジョンアルゴリズムは、光の表示パターンを分析して、各LEDの一意のIDを特定する。剛体追跡システムは各LEDを個々に復号化するため、この手法はノイズ及びオクルージョンに対してロバストである。しかし、この手法は、復号化が達成される前に幾つかのフレームを使用する。これは、任意の所与のフレームにおいて、幾つかの新しいLED(まだ復号化されていない)があり、幾つかの復号化されたLEDが視野から外れることも意味する。再構築アルゴリズムは、偽陽性に対してロバストである必要がある。
【0111】
なお、カメラは非常に短いシャッタ(1ミリ秒長未満)を有し、LEDは、シャッタが開いているときだけ照明するように同期される。その結果、剛体追跡システムは、カメラによって収集される周囲光の量を大幅に低減し、電力を節減し、高速頭部移動中のピンぼけを最小に抑え、最も重要なことには、カメラとVRヘッドセットとの既知のタイミングを維持することができる。これは、剛体追跡システムがIMUとビジョン測定との間でセンサ融合を実行する場合に重要であり得る。
【0112】
ポーズ再構築
各LEDのIDが分かると、LEDの既知の3Dモデルを所与として、剛体追跡システムは、LEDの観測射影を最良に説明するVRヘッドセットの6Dポーズ(3D位置及び向き)が何であるかという従来の射影幾何学的形状問題を解決する準備ができる。
【0113】
剛体追跡システムは、2つのタイプのポーズ再構築モードを有する:ブートストラップ及びインクリメント。
第1の変形であるブートストラップは、剛体追跡システムがLEDを最初に撮像するときに行われる。剛体追跡システムは前に識別問題を解決しており、これは、フレーム内の明るいドットの幾つかのIDの推測を有し得ることを意味する。しかし、剛体追跡システムは注意しなければならない。IDの幾つかは誤っている可能性があり、ドットの幾つかはまだ識別されていないことがあり、ドットの幾つかは、環境内の他の光源によるものであり得る。ブートストラップ中、剛体追跡システムは、これらの全ての競合を素早く解決し、VRヘッドセットのポーズを計算する必要がある。
【0114】
ブートストラップは、復号化されたLEDに基づいてポーズ仮説を生成する計算的に非常に効率的な方法である。剛体追跡システムは、ランザック(RanSAC:Random Sampling And Consensus)の変形を使用してこれらの仮説を通してソートして、正確に識別されたLEDのサブセットを見つける。
【0115】
これらのポーズ仮説が何であるかを理解するために、画像平面三角形に射影された三角形ABCをとる。ポーズ仮説は逆行して機能し、画像を説明する三角形の位置及び向きが何であるかを剛体追跡システムに教える。点A、B、及びCの場合、同じ射影を有する2つ以上のポーズがあり得る。点が同じ平面にない場合、このポーズの曖昧さが消え、点の数が3つを超えて増えるにつれて、曖昧さが低減することに気付くことが重要である。
【0116】
ブートストラップの最後の部分は、可能な限り多くのLEDを包含することにより、再構築されたポーズを改良することである。剛体追跡システムは、計算されたポーズを使用して、3Dモデルを画像に射影することによってこれを行う。次に、剛体追跡システムは、予期LED位置を観測LED位置と照合する。これにより、剛体追跡システムは、識別されるLEDの数を劇的に増大させることができ、その結果として、計算されたポーズを改良する。予期LED画像位置を観測と照合することは、ポーズ再構築問題の第2のバージョン(インクリメント問題を解く鍵)であることが分かる。
【0117】
図9は、観測された明るいドット(より大きなドット)及び予測射影(より小さなドット)を示す。幾つかの場合では、予測LEDと観測LEDとの対の一致は困難であり得る。
【0118】
予期LED位置と観測LED位置との一致が、特に高速頭部移動下で、全てのLEDが同じように見えるため、非常に困難であり得ることに気付くことに価値がある。
ポーズ推定問題の第2の変形ははるかに容易である。幸運なことに、第2の変形が、剛体追跡システムが大半のときに解決する必要があるものである。剛体追跡システムは、インクリメントモードである場合、現在のフレームでのポーズを計算するための開始点として、前のフレームからのVRヘッドセットのポーズを使用することができる。これがいかに機能するか。一言では、予測である。インクリメントモード中、剛体追跡システムは、ビジョン及びIMUからの情報を融合して、VRヘッドセットがあると予期される場所を計算する。次に、剛体追跡システムは、予測を観測と照合し、必要に応じて補正を実行する。
【0119】
インクリメント推定は、多くの様々な問題に適用されてきている。例えば、多くの最適化アルゴリズムは、あらゆるステップが解決策に少しずつ近づく反復手法を使用する。別の例は、測定がリアルタイム(オンライン)で提供される問題である。多種多様なフィルタが提案されており、その中でも最も普及しているものは、ベイジアンフィルタ(Bayesian filter)の類のものである。この類には、カルマンフィルタ、拡張カルマンフィルタ、シーケンシャルモンテカルロフィルタ等が含まれる。リアルタイムポーズ推定も、ベイジアンフィルタを使用して対処されることが多い。
【0120】
剛体追跡システムは、情報を融合するカスタムフィルタを使用し、予測を行うことができる。開始点は、前のフレームで計算された位置及び向きである。これは良好な開始点であるが、カメラフレーム間で必ず少し動き得る(16.6ms@60Hz)。剛体追跡システムは、最後の少数のフレームにわたりポーズを見る場合、速度に基づいて幾らかの予測を行うことができる。ここで、本発明は少し近い。幸運なことに、剛体追跡システムはIMUも有する。これは、前の画像と現在の画像との間で、剛体追跡システムが実際に、角速度及び線形加速度の約16の測定値を有することを意味する。本発明のカスタムフィルタは、この情報を全て融合し、位置、速度、及び加速度に基づく履歴ベースのポーズ推定を提供する。最終結果は、現在フレームでの実際のポーズにかなり近い。
【0121】
剛体追跡システムは、予測ポーズを使用して、LEDを画像平面に射影する。次に、剛体追跡システムは、予測LED画像座標を観測値と対にする。予測が正確である場合、一致は完全である。そして最後に、剛体追跡システムは、完全な一致を生じさせる推定ポーズに必要な補正を計算する。
【0122】
図10は、ポーズ最適化ステップを示す。図10は、最適解が大域的最小(global minimum)である2Dランドスケープを示す。剛体追跡システムは、履歴、速度、及び加速度に基づいて予測されたポーズで開始される。解は、剛体追跡システムが最適なポーズを見つけるまで、勾配降下最適化を使用して繰り返し改善される。インクリメントポーズ推定は、計算的に効率的であり、時間の大半で予期される剛体追跡システムのモードである。ブートストラップが成功し、VRヘッドセットがカメラに可視である限り、システムは、ポーズ予測、観測値との照合、ポーズの改良というこのプロセスを連続して進む。
【0123】
剛体追跡システムの3つの主な考慮事項は、オクルージョンへのロバスト性、効率的な計算、及び精度である。本方法は、本質的にオクルージョンに対してロバストである。識別中、剛体追跡システムは個々のLEDを認識することができる。一条件は、幾つかのフレームで少数のLEDを見ることである。ポーズ再構築もオクルージョンに対してロバストである。剛体追跡システムは、精度を検証し、フレーム毎に少数のLEDを見ることに基づいて、VRヘッドセットのポーズ推定を改良することができる。
【0124】
VRでの頭部追跡の精度要件は高い。剛体追跡システムは、VRヘッドセットでのLEDの配置の入念な設計を通して必要な安定性(<0.1mm且つ<0.1度)を提供するとともに、LED、IMU、及びカメラの間での信頼性の高い同期を提供する。全ての情報を一緒に融合することは、最終的に精密な予測及び平滑な追跡を可能にするものである。
【0125】
位置追跡の興味深い特性はグラウンディング(grounding)である。例えば、剛体追跡システムはここで、「前を向く」ことに意味を加えることができる。これは単に、カメラを見ることを意味する。ジャイロスコープ、加速度計、及び磁力計とは対照的に、ビジョンはドリフトしない。したがって、位置追跡を用いて、剛体追跡システムは、ドリフト補正に信頼性が高く単純な解決策を有する。
【0126】
位置追跡は、幾つかの興味深い問題を残す。尺度はよい一例である。ユーザは、現実世界での動きと現実世界での動きとの間に1対1のマッピングを予期するか。いかなる不一致もユーザの前庭系を混乱させ得るため、ユーザは恐らく1対1のマッピングを予期する。しかしここでも、頭部変位(ユーザが中心から遠いほど、ユーザが速く動くこと)に基づいて速度を制御することが有用である幾つかの使用事例がある。別の興味深い問題は、ユーザがカメラの視野に留まることをいかに促進するかである。
【0127】
別の例は、ユーザがいつ視野を出て、剛体追跡システムが位置追跡を失うが、それでもなおIMUにより向き追跡を有するかである。剛体追跡システムは、位置追跡を再取得する度、3Dから6Dに戻る。剛体追跡システムが、6Dに再入するためにすべきことは何か。2つの可能な解決策は、ビジョンが再取得されるとすぐに、正確な位置に移ること及び正確な位置にゆっくりと補間することであるが、両解決策は様々な方法で不安定である。
関心エリア
追加のシステム構成要素:追跡中の体の外部の少なくとも1つの静止デジタルカメラ、追跡中の体にしっかりと取り付けられる1つの慣性測定ユニット、並びに慣性測定ユニット、カメラ、及びメインCPUの構成要素間で情報を送受信するデジタルハードウェアを用いて、体表面に配置された多数の変調LEDに起因して、剛体追跡システムは、高精度及びオクルージョンロバスト性を達成する。
【0128】
剛体追跡システムにおいて、慣性測定ユニットは、角速度を測定する3軸ジャイロスコープである。
剛体追跡システムにおいて、慣性測定は3軸加速度計を含む。
【0129】
剛体追跡システムにおいて、慣性測定は3軸磁力計を含む。
剛体追跡システムにおいて、表面LEDは、同一平面になく、近傍LED間に十分な隔たりを提供する入念なパターンに配置される。
【0130】
剛体追跡システムにおいて、LEDは、所望の時間間隔にわたり2つ以上の所定の赤外線輝度レベルのうちの1つを維持し得るように変調される。
剛体追跡システムにおいて、LEDの変調はデジタルハードウェア構成要素によって制御される。
【0131】
剛体追跡システムにおいて、LEDの変調は、振幅、周波数、何らかの組合せ、又は他の信号符号化手段であり得る。
剛体追跡システムにおいて、LEDは、可視光スペクトル又は赤外線スペクトルであり得る。
【0132】
剛体追跡システムにおいて、カメラシャッタが開かれる時間又は慣性測定ユニットが新しい測定を提供する時間について、サブミリ秒時間スタンプが生成され、デジタルハードウェア構成要素によって記録される。
【0133】
ヘッドマウントディスプレイとの併用に有用な剛体追跡方法であって、頭部追跡方法は、慣性測定ユニット内のジャイロスコープによって得られる高周波(少なくとも1000Hz)角速度測定値から体の向き推定を更新すること、LEDの一意に識別されるサブセットを含む画像から推定される体の位置を更新すること、慣性測定ユニット及び1つ又は複数のカメラの両方からの測定値を密に統合することにより、計算効率及び推定精度を改善すること、将来の位置及び向きを予測する追加の能力を用いて、体の位置及び向きの推定を提供することを含む。
【0134】
上述した方法において、加速度計測定値は、向き傾斜デッドレコニングエラーの補償に使用される。
上述した方法において、カメラ画像、場合によっては磁力計測定値が、向きヨーデッドレコニングエラー(orientation tilt dead-reckoning error)の補償に使用される。
【0135】
上述した方法において、低レベル画像処理が実行されて、サブピクセル精度で画像のLED中心位置を抽出する。
上述した方法において、LED変調レベルが、連続カメラ画像にわたりデジタル符号化された識別子を提供し、それにより、LED識別問題を解決する。
【0136】
上述した方法において、画像からの位置及び向きの推定は、フレーム毎にインクリメントされて計算される。
上述した方法において、連続してシャッタが開く間の時間間隔にわたるジャイロスコープ及び加速度計からの測定値が利用される。
【0137】
上述した方法において、位置及び向きの正確な予測推定は、前のフレームからの推定を累積されたジャイロスコープ及び加速度計の測定値と結合することにより行われる。
上述した方法において、新しい位置及び向きの推定が、画像での予期されるLEDの中心位置と画像でのLEDの測定位置との不一致であるエラーを最適化するまで、予測推定を繰り返し摂動させる。
【0138】
概要
本開示の実施形態の上記説明は、例示のために提示され、網羅的である、すなわち本開示を開示される厳密な形態に限定する意図はない。多くの変更及び変形が上記開示に鑑みて可能であることを当業者は理解することができる。
【0139】
本開示の実施形態の上記説明は、例示のために提示され、網羅的である、すなわち本開示を開示される厳密な形態に限定する意図はない。多くの変更及び変形が上記開示に鑑みて可能であることを当業者は理解することができる。
【0140】
この説明の幾つかの部分は、アルゴリズム及び情報への動作の象徴的表現に関して本開示の実施形態を説明している。これらのアルゴリズム的説明及び表現は、当業者が他の当業者に仕事の実質を効率的に伝えるために一般に使用するものである。これらの動作は、機能的、計算的、又は論理的に説明され、コンピュータプログラム又は同等の電気回路、マイクロコード等によって実施されると理解される。さらに、時により、一般性を失うことなく、これらの動作構成をモジュールと呼ぶことが好都合であることも証明されている。説明された動作及び関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組合せで実施し得る。
【0141】
本明細書に記載される任意のステップ、動作、又はプロセスは、単独又は他のデバイスと組み合わせて1つ又は複数のハードウェア又はソフトウェアモジュールを用いて実行又は実施し得る。一実施形態では、ソフトウェアモジュールは、コンピュータプログラムコードを含むコンピュータ可読媒体を備えるコンピュータプログラム製品を用いて実施され、コンピュータプログラムコードは、コンピュータプロセッサによって実行されて、記載される任意又は全てのステップ、動作、又はプロセスを実行することができる。
【0142】
本開示の実施形態は、本明細書における動作を実行する装置にも関し得る。この装置は、必要とされる目的に向けて特に構築されてもよく、且つ/又はコンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化又は再構成される汎用計算デバイスを備えてもよい。そのようなコンピュータプログラムは、非一時的の実体的なコンピュータ可読記憶媒体又はコンピュータシステムバスに結合し得る電子命令の記憶に適する任意のタイプの媒体に記憶し得る。さらに、本明細書で参照される任意の計算システムは、単一のプロセッサを含んでもよく、又は計算能力を増大させるために複数のプロセッサ設計を利用したアーキテクチャであってもよい。
【0143】
本開示の実施形態は、本明細書に記載される計算プロセスによって生成される製品に関することもできる。そのような製品は、計算プロセスから生じる情報を備え得、情報は非一時的で実体的なコンピュータ可読記憶媒体に記憶され、コンピュータプログラム製品の任意の実施形態又は本明細書に記載される他のデータの組合せを含み得る。
【0144】
最後に、本明細書で使用される用語は主に、可読性及び指示を目的として選択されており、本発明の趣旨を表現又は制限するものとして選択されていないことがある。したがって、本開示の範囲がこの詳細な説明によって限定されず、むしろ、本明細書に基づいた出願で発行される任意の特許請求の範囲によって限定されることが意図される。したがって、実施形態の本開示は、本開示の範囲の限定ではなく例示であることが意図され、本開示の範囲は以下の特許請求の範囲に記載される。

図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10