【文献】
松田祐樹、柴田史久、木村朝子、田村秀行,モバイル型複合現実感システムにおける疑似運動視差の実現法,第17回日本バーチャルリアリティ学会大会論文集,日本,日本バーチャルリアリティ学会,2012年 9月12日,pp.191-194
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
「発明を実施するための形態」では、添付の図を参照する。図では、参照番号の最も左の数字は、その参照番号が最初に現れる図を識別する。同様の特徴および構成要素を参照するために図面を通して同じ番号が使用される。
【0010】
本明細書に記載する技術は、たとえば、拡張現実環境における、ユーザデバイスのスクリーン側とユーザデバイスのカメラ側との間の対話のための機構を含む。本明細書で使用する「拡張現実」という用語は、実世界映像をコンピュータ生成データと組み合わせ、実世界上にグラフィックス、オーディオ、および他の知覚入力を重ねるどの環境も意味することを意図している。
【0011】
拡張現実環境においてユーザデバイスを動作させることは、とりわけ、ユーザデバイスが拡張現実シーンに空間的に位置合せされるべきであるので、困難な場合がある。ただし、ユーザはユーザデバイスを両手で握って保持するので、オンスクリーンメニュー、ラベル、ウィジェットなどはユーザの手でアクセスされる必要があるために、ユーザデバイス向けに限られた入力モダリティしかない。
【0012】
一態様では、ユーザデバイス中のカメラが、一定であり得る画像ストリームをユーザデバイスのユーザ側(または前)から、および画像ストリームをユーザデバイスのターゲット側(または後ろ)から受信する。カメラは、ユーザの顔にある目、口、鼻孔、頬などを検出し得る。一態様では、ユーザデバイスは、ユーザデバイスに相対した、ユーザについての座標系を獲得し、ターゲットに相対した、ユーザデバイスの座標系を獲得し、2つの座標系をグローバル座標系の中に組み合わせる。ユーザデバイスは次いで、ユーザが動いたかどうか、および/またはユーザデバイスが動いたかどうかを判断する。ユーザおよび/またはユーザデバイスの動きは、拡張現実環境におけるユーザの対話を制御するための入力モダリティとして使用される。
【0013】
1つまたは複数の実装形態において、ユーザデバイスは、ユーザデバイスの前およびユーザデバイスの後ろにおける6つの自由度を解釈する。ユーザデバイスは、これらの自由度の各々を別々の入力モダリティにマップし、12個の入力モダリティを得る。入力モダリティは、声、唇の動き、目の動き、音声、ジェスチャー、笑み、注視、頭の動き、顔の動き、体の動き、キーボード入力、デジタル化タブレットからの入力などを含み得る。入力モダリティはまた、ユーザデバイスとターゲットとの間の対話空間に影響し得る、ユーザの顔、ユーザの頭の位置、ユーザデバイスに対するユーザの近接度などから推論することができる情報を含み得る。
【0014】
1つまたは複数の態様において、ユーザデバイスの前およびユーザデバイスの後ろにおけるマッピングにより、拡張現実環境は、ユーザデバイスを保持しているユーザ(ターゲットに歩み寄っている)または自分の頭を動かしているユーザ(顔追跡を使用する)によって制御される。1つまたは複数の実装形態において、ユーザデバイスの前およびユーザデバイスの後ろにおけるマッピングはまた、他の入力モダリティと組み合わせることができる。たとえば、ユーザの顔姿勢は、シーン中にレイキャスティングされ得る。ユーザの顔姿勢は次いで、ユーザからの声入力と組み合わせることができる。代替として、ユーザの顔姿勢は、ユーザの瞬き入力、音声入力、注視入力と、ならびにユーザデバイスの位置および/または配向と組み合わせることができる。音声入力は、シーン中のオブジェクトを指すのに使用することができる。ユーザの注視は、ユーザが実際にどこを見ているかを判断するのに使用することができる。さらに別の入力モダリティは、空間中でのユーザデバイスの位置および/または配向を含み得る。
【0015】
1つまたは複数の実装形態において、ユーザデバイスは、ユーザデバイスに相対したユーザの顔を検出および追跡する。ユーザデバイスは、ターゲットに相対したユーザデバイスも検出および追跡する。ユーザデバイスは次いで、ユーザデバイスに対するユーザの顔の近接度および向きをマップする。
【0016】
ユーザデバイスに対するユーザの顔の近接度および向きのマッピングは、ユーザデバイスのディスプレイに示される情報の詳細レベルを変えることによって遂行することができる。たとえば、ユーザデバイスに対するユーザの近接度によって、ユーザデバイスの後ろの拡張現実シーン中に示される詳細は、それに応じて、より詳しく、またはより詳しくなくなるように適合され得る。
【0017】
ユーザデバイスに対するユーザの顔の近接度および向きのマッピングは、自動化分解線図および/またはx線技術を使用して、拡張現実シーン中のターゲットオブジェクトの内側を見ることによって遂行することができる。たとえば、ターゲット上の1つまたは複数のオブジェクトの自動化3次元(3D)モデルを生成することは、オブジェクトを、オブジェクトの部分が互いに対してどのように分解するかを符号化する分解グラフに編成することを含み得る。自動化3次元(3D)モデルにより、ユーザは、直接制御とよりハイレベルの対話モードの両方を使用して、分解図を対話によって探査することができる。
【0018】
一実装形態では、ユーザの注視は、ターゲット上で、分解した部分が動く経路を直接制御することができる。別の実装形態では、ユーザの注視と分解したモデルとの間の関係は1次制御として使用することができ、別のモダリティ(たとえば、声、タッチなど)は、分解線図中のユーザの注視の交点近くの、分解した部分の状態を変える2次制御として使用することができる。
【0019】
ユーザデバイスに対するユーザの顔の近接度および向きのマッピングはまた、透明および/または半透明ユーザインターフェース要素、すなわち、ターゲット上のオブジェクト中の対象領域の上に、その外見および/またはその対話挙動を変えるために置かれる「マジックレンズ」を使用して遂行することができる。この、いわゆる「マジックレンズ」は、マッピングを支援するために、1つまたは複数のオブジェクトの上部を見るのに使用することができる。
【0020】
図1は、本明細書に記載する技術の1つまたは複数の実装形態による拡張現実環境100を示す。拡張現実環境100において、実世界のユーザのビューは、仮想コンピュータ生成グラフィックスで強化される。グラフィックスは、ユーザの視点から実世界に整列されて見えるように、空間的に位置合せされ、拡張現実環境100に空間的に拡張する。
【0021】
図示する拡張現実環境100は、ユーザ102、ユーザデバイス104、およびターゲット106を含む。ターゲット106からのシーンが、ユーザデバイス104上のディスプレイ112に示される。図示する環境100は、座標系114、座標系116、および座標系118も含む。
【0022】
1つまたは複数の実装形態において、拡張現実環境100は、ゲーム用設定、教育用設定、工業デザイン、スポーツおよび娯楽、医療環境、または拡張現実技術の使用から利益を受け得る他の適切な環境において使用することができる。
【0023】
1つまたは複数の実装形態において、ユーザ102は、ユーザデバイス104のどの人間ユーザであってもよい。したがって、ユーザ102は、様々な入力モダリティを使用してユーザデバイス104と対話することができる。当然ながら、ユーザ102は、たとえば、人間の制御の下でユーザデバイス104と対話することが可能なロボットなど、どの機械的デバイスであってもよい。
【0024】
1つまたは複数の実装形態において、ユーザデバイス104は、たとえば電話、タブレットコンピュータ、「ファブレット(電話+タブレット)」コンピュータ、スマートフォン、ラップトップおよびデスクトップコンピュータなど、どのユーザ機器であってもよい。1つまたは複数の実装形態において、ユーザデバイス104は、1つまたは複数の配向検知モジュール、カメラ、ワイヤレストランシーバ、グラフィックスエンジン、プロセッサ、ユーザインターフェース(たとえばディスプレイ112、キーパッド)、目の動き検出モジュール、手の動き検出モジュール、声検出モジュール、音声認識モジュール、表情認識モジュール、頭部追跡モジュールなどを含む。
【0025】
1つまたは複数の実装形態において、ターゲット106は、場所、オブジェクト、全体的向き、人、または他の類似項目であってよい。ターゲット106は固定であっても、または動いていてもよい。
【0026】
図示するディスプレイ112は、テキスト、画像などを表示することが可能なタッチスクリーンディスプレイ、ホログラフィックディスプレイなどであってよい。
【0027】
図示する座標系114は、(ユーザデバイスの前にある)顔対デバイス(face-to-device)座標系である。座標系114は、空間中のユーザの配向に相対したユーザ102についての座標系である。1つまたは複数の実装形態において、座標系114は、ユーザデバイス104に対するユーザ102の顔の位置および配向を検出および追跡する。
【0028】
図示する座標系116は、(ユーザデバイスの後ろにある)デバイス対ターゲット座標系である。座標系116は、空間中のユーザデバイスの配向に相対したユーザデバイス104についての座標系である。1つまたは複数の実装形態において、座標系114は、ターゲット106に対するユーザデバイス104の位置および配向を検出および追跡する。
【0029】
座標系114および座標系116は、組み合わされて座標系118を生成する。図示する座標系118は、グローバル座標系(または実世界座標系)である。ユーザデバイス104は、配向が相対配向であるかまたは絶対配向であるかを判断するのに、座標系118を使用する。
【0030】
ユーザデバイス104は、ユーザ102が動いたかどうか、ユーザデバイス104が動いたかどうか、またはユーザ102とユーザデバイス104の両方が動いたかどうかを判断するのにも座標系118を使用する。一態様では、ユーザデバイス104は、ユーザ102が動いたかどうか、ユーザデバイス104が動いたかどうか、またはユーザ102とユーザデバイス104の両方が動いたかどうかを、センサを使わずに判断する。一般に、センサは、ユーザデバイス104が動いたか否かを判断するだけでよい。
【0031】
図1に示す配置を用いると、ユーザ102は、自分の頭を動かし、自分の頭を回し、ユーザデバイス104を動かし、ユーザデバイス104を回転させる場合があるとともに、ユーザデバイス104は動きを検出し、解釈することができるので、ユーザデバイス104に対するユーザ102の顔の6つのポーズ自由度を計算することが可能である。1つまたは複数の実装形態において、ユーザデバイス104は、これらの自由度の各々を別々の入力モダリティにマップし、12個の入力モダリティを得る。
【0032】
図2は、本明細書に記載する技術の実装形態による拡張現実環境200を示す。図示する拡張現実環境200は、ユーザ102、ユーザデバイス104、およびターゲット106を含む。ユーザデバイス104は、ユーザデバイス104のディスプレイ112上に、ターゲット106からのオブジェクト202を表示している。図示する拡張現実環境200において、オブジェクト202はコーヒーメーカーである。ユーザ102は、オブジェクト202を閉塞側から観察する。図示する拡張現実環境200において、ユーザ102は、自分の頭を矢印204の向きに沿って動かす。矢印204の向きに沿った動きは、入力モダリティのソースであり、オブジェクト202はアクションオブジェクトである。
【0033】
ユーザデバイス104の前のユーザ102の位置が、オブジェクト202の配向にマップされる。図示した実装形態では、ディスプレイ上のスクリーンに対するユーザ102の頭部ポーズは、オブジェクト202の配向に、反対向きにマップされる。したがって、ユーザ102が、自分の頭を矢印204の向きに沿って右に動かすと、オブジェクト202は左を向く。こうすることにより、ユーザ102は、オブジェクト202を様々な角度から観察することができる。さらに、ユーザデバイス104がターゲット106に向かって動くと、オブジェクト202は物理空間において同じ位置に留まる。ただし、ユーザ102とユーザデバイス104との間の配向が変わると、オブジェクト202の配向は変えられる。
【0034】
図3も、ユーザ102、ユーザデバイス104、およびターゲット106を含む拡張現実環境200を示す。ユーザデバイス104は、ユーザデバイス104のディスプレイ112上に、ターゲット106からのオブジェクト202を表示している。ただし、
図3において、ユーザ102は、コーヒーカップ304として示されるオブジェクト202の部分およびその基底構造をあらわにするように、矢印302の向きに沿って横に動いている。コーヒーカップ304は、ユーザ102に対するオブジェクト202の可視性を最適化するために、ユーザ102の頭部姿勢に従って並べられる。この実装形態において、ユーザデバイス104は、ユーザ102がどこを見ているかを表示することができる。
【0035】
1つまたは複数の態様において、ユーザ102の注視は、ある入力モダリティを与え、矢印302の向きに沿ったユーザ102の動きは別の入力モダリティを与える。ユーザデバイス104は、ユーザデバイス104に対するユーザ102の顔の近接度および向きを、オブジェクト202の詳細レベルを変えるようにマップする。図示した実装形態では、ユーザデバイス104は、ユーザ102の注視を、コーヒーカップ304をより詳しく示すようにオブジェクト202の詳細レベルを調節するのに使用する。一実装形態では、ユーザデバイス104中のカメラ(図示せず)が、オブジェクト202の対象領域を分解させて、ユーザ102がコーヒーカップ304を見ることができるようにする。
【0036】
図4は、ユーザ102、ユーザデバイス104、およびターゲット106を含む拡張現実環境200を示す。ユーザデバイス104は、ユーザデバイス104のディスプレイ112上に、ターゲット106からのオブジェクト202を表示している。ただし、拡張現実環境200のこの実装形態では、ラベルおよび/または仮想オブジェクト(図示せず)が使用される。図示されていないが、オブジェクト202上のラベルは、ユーザ102の頭部ポーズに従って掲示板方式で並べられ得る。ただし、ラベルは、ユーザ102がオブジェクト202を実際に見ることができるように、視線に従って、およびユーザ102に向かって並べられるべきである。さらに、ラベルは、ユーザ102の視線中に直接閉塞するべきでも、オブジェクト202と衝突するべきでもない。
【0037】
1つまたは複数の実装形態において、ユーザデバイス104は、ユーザ102の注視および/または視線(すなわち、衝突情報)を、ユーザ102がオブジェクト202を効果的に見ることを可能にするようにラベルの位置および/または配向を変えるための入力モダリティとして使用する。ユーザデバイス104はユーザ102の瞬きを検出することができ、瞬きは次いで、どのラベルをスイッチオンおよびオフするようにマップされてもよい。一例として、ユーザ102の視線に対する近接度が最も近いラベルを、ユーザデバイス104上でのレンダリングから除外してもよい。
【0038】
図5は、セマンティックズームが実装される拡張現実環境200を示す。
図5に示す拡張現実環境200も、ユーザ102、ユーザデバイス104、およびターゲット106を含む。ユーザデバイス104は、ユーザデバイス104のディスプレイ112上に、ターゲット106からのオブジェクト202を表示している。ただし、
図5に示される実装形態では、ユーザ102の頭部ポーズの中心点502にある、オブジェクト202の部分は、ユーザ102がターゲット106により近づくことなく、オブジェクト202の拡大検査をユーザ102に対して可能にするように、矢印504に沿ってズームアップされる。ユーザ102の注視は、オブジェクト202にズームインするのに使用することができる。
【0039】
図5に示す拡張現実環境200はまた、ユーザ102が動いたかどうか(ある入力モダリティ)、またはユーザデバイス104が動いたかどうか(別の入力モダリティ)を判断することができる。ユーザデバイス104上の別個のユーザインターフェースが、これらの入力モダリティを別個にマップするのに使われ得る。
【0040】
たとえば、ユーザデバイス104は、座標系114(顔対デバイス)、座標系116(デバイス対ターゲット)、およびグローバル座標系118(すべて
図1に示される)を使用して、ユーザ102および/またはユーザデバイス104の配向が相対配向であるかまたは絶対配向であるかを判断することができる。ユーザデバイス104は、ユーザ102が動いたかどうか、ユーザデバイス104が動いたかどうか、または両方とも動いたかどうかを判断するための配向差を計算することができる。この計算は、センサを使わずに遂行することができ、このことは、センサはユーザデバイス104が動いたかどうかを判断するだけでよいので、有利である。
【0041】
図6は、適切なマジックレンズ(図示せず)が実装される、本明細書に記載する技術の別の実装形態による拡張現実環境200を示す。たとえば、図示した実装形態では、オブジェクト202の部分が、オブジェクト202のバウンディングボリューム602と交差した、ユーザ102の頭部ポーズに基づいて強調表示される。
一般に、マジックレンズはスクリーンと整列されるので、従来のマジックレンズを使用する2つの自由度のみがある。いくつかの実装形態によると、座標内で1つまたは複数のモダリティを使用すると、マジックレンズはそれに従って動くことができる。たとえば、実世界スクリーン上に実際に示される、異なるレイヤが存在する場合がある。その結果、追加モダリティは、マジックレンズの内容を切り替え、マジックレンズを最大で6つの自由度で動かすことができるようにする。6つの自由度は、ユーザ102の注視またはユーザ102の視線を使用して可能にされる。
【0042】
図7は、本明細書に記載する技術の実装形態による拡張現実システム700のハイレベルブロック図を示す。1つまたは複数の実装形態において、拡張現実システム700は、ユーザ座標系を使用して、ユーザデバイスに対するユーザの顔の位置および配向を検出および追跡し、ユーザデバイス座標系を使用して、ターゲットに対するユーザデバイスの位置および配向を検出および追跡し、ユーザ座標系およびユーザデバイス座標系をグローバル座標系にマップする。拡張現実システム700はまた、ユーザの検出された顔、ユーザデバイスの検出された位置、およびグローバル座標系を使用して、ユーザの顔を連続的に追跡する。
【0043】
図示するシステム700は、任意選択の慣性測定ユニット(IMU)704と、1つまたは複数のプロセッサ706と、メモリ708と、対話論理710と、レンダラ712と、合成器714と、グラフィック処理ユニット(GPU)716とを有するユーザデバイス702を含む。
【0044】
1つまたは複数の実装形態において、ユーザデバイス702はカメラである。この実装形態において、ユーザデバイス702はカメラ正面718およびカメラ背面720を含む。カメラ正面718は、ユーザ102など、ユーザデバイス702のユーザに面する。カメラ背面720は、ターゲット106など、画像のターゲットが位置するシーンに面する。
【0045】
図示するカメラ正面718は画像722を捕捉する。図示するカメラ背面720は画像724を捕捉する。
【0046】
図示するプロセッサ706は、顔検出器726、顔追跡器728、および瞬き検出器730を含む。図示する顔検出器726、顔追跡器728、および瞬き検出器730は画像722を処理する。
【0047】
一態様では、図示する顔検出器726は、画像722中のユーザ102の顔を検出する。図示する顔追跡器728は、顔検出器726の出力を使用して、ユーザ102の顔の動きを追跡する。図示する顔追跡器728はまた、ポーズ顔モジュール732を使用して、ユーザ102が自分の顔にポーズをつけているかどうかを判断する。図示する瞬き検出器730は、顔追跡器728の出力を使用して、ユーザ102が瞬きしたかどうか(すなわち、目が開いている/閉じている)を判断し、この判断を、瞬きトリガモジュール734用に使用する。ポーズ顔モジュール732出力と瞬きトリガモジュール734出力の両方が対話論理710に与えられる。対話論理710については後でより詳細に説明する。
【0048】
図示するプロセッサ706は、画像ターゲット検出器736、画像追跡器738、およびセンサ追跡器740も含む。図示する画像ターゲット検出器736、画像追跡器738、およびセンサ追跡器740は画像724を処理する。たとえば、図示する画像ターゲット検出器736は、オブジェクト202など、画像724中のターゲットを検出する。図示する画像追跡器738は、画像ターゲット検出器736出力を使用して、ターゲットの動きを追跡する。図示する画像追跡器738は、画像ターゲット検出器736出力を使用して、ターゲットの動きを追跡する。図示する画像追跡器738はまた、ポーズデバイスモジュール742を使用して、ユーザデバイス702がポーズをとっているかどうかを判断する。
【0049】
図示するセンサ追跡器740は、ユーザデバイス702の動きを追跡する。図示するセンサ追跡器740は、任意選択で、ユーザデバイス702についての慣性情報を慣性測定ユニット(IMU)704から受信し、ユーザデバイス702が動いたかどうかを判断する。図示するセンサ追跡器740は、この判断をポーズデバイスモジュール742に与える。代替として、センサ追跡器740は、ユーザデバイス702の位置を判断するための技法を実装してよい。そのような技法は、三角測量、Wi-Fi測位などを含む、ネットワークからのデータを使用することを含み得る。
【0050】
画像追跡器738出力とポーズデバイス742出力の両方が、対話論理710に与えられる。対話論理710出力はレンダラ712に与えられる。図示するレンダラ712は、画像722および画像724中のシーンの視覚要素を生成することが可能な、どの適切な技術を使用しても実装することができる。レンダラ712出力は合成器714に与えられる。
【0051】
1つまたは複数の実装形態において、ユーザデバイス702は、ユーザデバイス104と同じか、または同様である。ユーザデバイス702中のカメラは、電荷結合デバイス(CCD)ベースの画像検出器、相補型金属酸化膜半導体(CMOS)ベースの画像検出器、または他の適切な画像検出器を含み得る。
【0052】
1つまたは複数の実装形態において、慣性測定ユニット(IMU)704は、ユーザデバイス702の動きを検出する。慣性測定ユニット(IMU)704は、ユーザデバイス702の速さ、配向、および重力を測定し報告することが可能な、どのデバイスであってもよい。慣性測定ユニット(IMU)704は、たとえば、加速度計、ジャイロスコープ、および/または磁力計の組合せを使用することができる。
【0053】
1つまたは複数の実装形態において、プロセッサ706は、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)、プログラム可能論理デバイス(PLD)、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、または情報の算出または他の操作を実施することができる他のどの適切なエンティティでもある。プロセッサ706は、情報を処理するために使用することができる。プロセッサ706は、特殊目的論理回路要素によって補完されても、または特殊目的論理回路要素に組み込まれてもよい。
【0054】
1つまたは複数の実装形態において、メモリ708は、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラム可能読取り専用メモリ(PROM)、消去可能PROM(EPROM)、レジスタ、ハードディスク、取外し可能ディスク、CD-ROM、DVD、または情報、コンピュータプログラム、および/またはプロセッサ706によって実行されるべき命令を記憶するために使用される他の任意の適切な記憶デバイスである。メモリ708は、本明細書に記載する技術を実装するのに使用される1つまたは複数のコンピュータプログラム用の実行環境を作成するコードを記憶することができる。
【0055】
図示する合成器714は、レンダラ712から取得された視覚要素を組み立てて単一の画像にすることが可能な、どの適切な技術を使用しても実装することができる。1つまたは複数の実装形態において、合成器714は、ユーザデバイス702のスクリーンに表示するために、視覚要素を単一の画像にデジタルにまとめる。
【0056】
図示するグラフィック処理ユニット(GPU)716は、画像722および724がユーザデバイス702のスクリーンに表示され得るように、プロセッサ706およびメモリ708から受信された情報を処理することが可能な、どの適切な技術を使用しても実装することができる。
【0057】
1つまたは複数の実装形態において、ポーズ顔モジュール732は、ユーザ102の顔の変換における3つの自由度、およびユーザ102の顔の3つの配向度を与える。
【0058】
1つまたは複数の実装形態において、瞬きトリガモジュール734は、ユーザ102の目が開いているか、または閉じているかを示す、ブール値のオン/オフおよび/または目の開/閉信号を生成することができる。これらの信号は、ユーザデバイス702のスクリーン上のラベルをオンおよび/またはオフにするのに使用することができる。
図示する顔検出器726、顔追跡器728、および瞬き検出器730は、どの適切な外見ベースの顔認識技法を使用しても実装することができる。適切な外見ベースの顔認識技法は、直接相関技法、固有顔技法などを含む。図示する顔検出器726および顔追跡器728は、センサなしで実装することができる。
【0059】
図8は、1つまたは複数の実装形態による対話論理710のハイレベルブロック図を示す。図示する対話論理710は、ポーズ顔モジュール732、瞬きトリガモジュール734、ポーズデバイスモジュール742、および他の入力モダリティ802から入力を受信する。図示する対話論理710は、レンダラ712に出力を与える。1つまたは複数の実装形態において、対話論理710は、ユーザ102の顔の配向における位置、ユーザ102の顔の外見(たとえば、瞬きおよび笑み)、ならびにユーザデバイス702位置および配向の変化を、拡張現実環境(たとえば、拡張現実環境100および200)におけるアクションを与えるために解釈する。
【0060】
1つまたは複数の実装形態において、他の入力モダリティ802は通常、声、唇の動き、目の動き、音声、ジェスチャー、頭、顔、および体の動き、キーボード、デジタル化タブレットなどを含む。他の入力モダリティ802はまた、ユーザ102の顔から推論され得る、および/またはユーザデバイス702とターゲット106との間の対話空間に影響し得る情報を含み得る。たとえば、他の入力モダリティ802は、ユーザ102の頭の位置、ユーザデバイス702に対するユーザ102の近接度などから推論され得る。他の入力モダリティ802も、シーンを向いている側のユーザデバイス702の後ろの対話空間に対して影響を与える。
【0061】
対話論理710は、配向および変換フィルタ804、制約ソルバ806、時間コヒーレンシモジュール808、対話オブジェクトモジュール810、グローバル座標系モジュール812、ならびに空間的対話モジュール814も含み、それらの出力はマッパー816に与えられる。
【0062】
図示する配向および変換フィルタ804は、たとえば、ユーザデバイス702および/またはユーザ102に、3つの変換自由度を与えるのに使用することができる。図示する配向および変換フィルタ804はまた、たとえば、ユーザデバイス702および/またはユーザ102に、3つの配向自由度を与えるのに使用することができる。
【0063】
図示する制約ソルバ806は、画像722および/または724の実際のサイズおよび/またはピクセル比を変更するのに使用することができる。
【0064】
図示する時間コヒーレンシモジュール808は、ユーザデバイス702の、ユーザ102に面している側についてのタイミングが、ユーザデバイス702の、ターゲット106に面している側についてのタイミングと一致することを確実にすることができる。
【0065】
図示した実装形態では、顔ポーズモジュール732、瞬きトリガ734、および他の入力モダリティ802は、対話オブジェクトモジュール810にマップされる。対話オブジェクトは、ユーザデバイス702によって追跡されている対話型仮想および物理オブジェクトの再表現であり得る。図示する対話オブジェクトモジュール810は、拡張現実システム700を通して説明される、追跡されるオブジェクトの、物理学に基づく空間表現(ストレージおよび論理)を与える。
【0066】
1つまたは複数の実装形態において、対話オブジェクトモジュール810はグローバル座標系モジュール812にマップされる。
【0067】
図示する空間的対話モジュール814は、対話オブジェクトモジュール810中で対話オブジェクトを保持し、アップデートさせ続け、構成可能アクションをレンダリングシステム712において可視的にさせるマッパー816にデータ出力を与える。データ出力は、対話オブジェクト810の間の近接度であってよい。
【0068】
図示するマッパー816は、何がレンダリングされるべきであるか、および/または何がユーザデバイス702のスクリーンに表示されるべきであるかに関する判断を行うことができる。さらに、マッパー816は、ユーザデバイス702上で音が再生されるべきであるかどうかを判断することができる。
【0069】
例示的拡張現実方法
図8は、1つまたは複数の実装形態による対話論理710のハイレベルブロック図を示す。図示する対話論理710は、ポーズ顔モジュール732、瞬きトリガモジュール734、ポーズデバイスモジュール742、および他の入力モダリティ802から入力を受信する。図示する対話論理710は、レンダラ712に出力を与える。1つまたは複数の実装形態において、対話論理710は、ユーザ102の顔の配向における位置、ユーザ102の顔の外見(たとえば、瞬きおよび笑み)、ならびにユーザデバイス702位置および配向の変化を、拡張現実環境(たとえば、拡張現実環境100および200)におけるアクションを与えるために解釈する。
【0070】
1つまたは複数の実装形態において、他の入力モダリティ802は通常、声、唇の動き、目の動き、音声、ジェスチャー、頭、顔、および体の動き、キーボード、デジタル化タブレットなどを含む。他の入力モダリティ802はまた、ユーザ102の顔から推論され得る、および/またはユーザデバイス702とターゲット106との間の対話空間に影響し得る情報を含み得る。たとえば、他の入力モダリティ802は、ユーザ102の頭の位置、ユーザデバイス702に対するユーザ102の近接度などから推論され得る。言い換えると、他の入力モダリティ802は、シーンを向いている側のユーザデバイス702の後ろの対話空間に対して影響を与え得る。
【0071】
対話論理710は、配向および変換フィルタ804、制約ソルバ806、時間コヒーレンシモジュール808、対話オブジェクトモジュール810、グローバル座標系モジュール812、ならびに空間的対話モジュール814も含み、それらの出力はマッパー816に与えられる。
【0072】
図示する配向および変換フィルタ804は、たとえば、ユーザデバイス702および/またはユーザ102に、3つの変換自由度を与えるのに使用することができる。図示する配向および変換フィルタ804はまた、たとえば、ユーザデバイス702および/またはユーザ102に、3つの配向自由度を与えるのに使用することができる。
【0073】
図示する制約ソルバ806は、画像722および/または724の実際のサイズおよび/またはピクセル比を変更するのに使用することができる。
【0074】
図示する時間コヒーレンシモジュール808は、ユーザデバイス702の、ユーザ102に面している側についてのタイミングが、ユーザデバイス702の、ターゲット106に面している側についてのタイミングと一致することを確実にすることができる。
【0075】
図示した実装形態では、顔ポーズモジュール732、瞬きトリガ734、および他の入力モダリティ802は、対話オブジェクトモジュール810にマップされる。対話オブジェクトは、ユーザデバイス702によって追跡されている対話型仮想および物理オブジェクトの再表現であり得る。図示する対話オブジェクトモジュール810は、拡張現実システム700を通して説明される、追跡されるオブジェクトの、物理学に基づく空間表現(ストレージおよび論理)を与える。
【0076】
1つまたは複数の実装形態において、対話オブジェクトモジュール810はグローバル座標系モジュール812にマップされる。
【0077】
図示する空間的対話モジュール814は、対話オブジェクトモジュール810中で対話オブジェクトを保持し、アップデートさせ続け、構成可能アクションをレンダリングシステム712において可視的にさせるマッパー(816)にデータ出力を与える。データ出力は、対話オブジェクト810の間の近接度であってよい。
図示するマッパー816は、顔ポーズ配向および変換(座標)、ならびにデバイス配向および変換(座標)が互いとマージされるように、連続的に同じときに(すなわち、同時に)稼動している顔追跡器728および画像追跡器738からのデータをマージする。マッパー816は、何がレンダリングされるべきであるか、および/または何がユーザデバイス702のスクリーンに表示されるべきであるかに関する判断を行うことができる。さらに、マッパー816は、ユーザデバイス702上で音が再生されるべきであるかどうかを判断することができる。
【0078】
図9は、本明細書に記載する技術の実装形態による、拡張現実環境700がどのように動作するかという方法のフローチャートである。
【0079】
ブロック902において、方法900は、ユーザデバイスに対する、ユーザの顔の位置および配向を検出および追跡する。一態様では、ユーザデバイス702は、ユーザデバイス702のユーザ102側から画像ストリームを受信する。1つまたは複数の実装形態において、顔検出器726は、ユーザデバイス702に対する、ユーザ102の顔の位置および配向を検出する。1つまたは複数の実装形態において、顔追跡器728は、ユーザデバイス702に対する、ユーザ102の顔の位置および配向を追跡する。
【0080】
ブロック904において、方法900は、シーン中のターゲットに対する、ユーザデバイスの位置および配向を検出および追跡する。一態様では、ユーザデバイス702は、ターゲット106から画像ストリームを受信する。1つまたは複数の実装形態において、画像ターゲット検出器736は、ターゲット106に対する、ユーザデバイス104の位置および配向を検出する。1つまたは複数の実装形態において、画像追跡器738は、ターゲット106に対する、ユーザデバイス702の位置および配向を追跡する。
【0081】
ブロック906において、方法900は、ユーザ座標系とユーザデバイス座標系を、グローバル座標系の中に組み合わせる。1つまたは複数の実装形態において、対話論理710は、座標系114と座標系116を座標系118に組み合わせる。1つまたは複数の実装形態において、対話論理710は、ポーズ配向および変換座標114とユーザデバイス702配向および変換座標116が互いに座標系118の中に組み合わされるように、顔追跡器728および画像追跡器738からのデータをマージする。
【0082】
ブロック908において、方法900は、ユーザデバイスに対する、ユーザの顔の検出された位置および配向と、ユーザの顔の検出された位置および配向と、グローバル座標系とを使用して、ユーザの顔を連続的に追跡する。1つまたは複数の実装形態において、顔追跡器728は、ユーザデバイス702に対する、ユーザ102の顔の検出された位置および配向と、ユーザ102の顔の検出された位置および配向と、座標系118とを使用して、ユーザの顔を連続的に追跡する。
【0083】
本明細書に記載する技術の態様および関連図面は、技術の特定の実装形態を対象とする。本明細書に記載する技術の範囲から逸脱することなく、代替的な実装形態を考案することができる。さらに、関連する詳細を不明瞭にしないように、技術のよく知られている要素については詳細に説明しないか、または省略する。
【0084】
様々な方法のステップおよび決定が、この開示では連続的に説明されていることがあるが、これらのステップおよび決定のいくつかは、別個の要素によって連携してもしくは並行して、非同期的にもしくは同期的に、パイプライン方式で、またはその他の方法で、行われ得る。この説明がステップおよび決定を列挙するのと同じ順序でそれらが行われることは、そのように明示されている、さもなければ文脈から明らかである、または本質的に要求される場合を除いて、特に必要ではない。しかしながら、選択された変形では、ステップおよび決定は、上述の順序で行われることに留意されたい。さらに、本明細書に記載する技術に従ってすべての実装形態/変形では、すべての図示したステップおよび決定が必要とされるとは限らず、本明細書に記載する技術によるいくつかの実装形態/変形では、特に図示していないいくつかのステップおよび決定が、望ましいまたは必要であることがある。
【0085】
様々な異なる技術および技法のいずれかを使用して情報および信号が表現され得ることを当業者なら理解されよう。たとえば、上の記述の全体を通して参照される場合のあるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはこれらの任意の組合せによって表される場合がある。
【0086】
さらに、本明細書に開示する実装形態との関連で述べた様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはこれらの組合せとして実装される場合があることを、当業者なら認識するであろう。ハードウェアとソフトウェアのこのような互換性をわかりやすく示すために、様々な例示的構成要素、ブロック、モジュール、回路、およびステップを、概してその機能性に関して上述した。そのような機能性がハードウェアとして実装されるかソフトウェアとして実装されるかまたはハードウェアとソフトウェアの組合せとして実装されるかは、特定の応用例と、システム全体に課される設計制約とに依存する。当業者は、説明された機能性を各々の特定の応用分野について様々な方式で実装し得るが、そのような実装判断は、本明細書に記載する本技術の範囲からの逸脱を引き起こすと解釈されるべきではない。
【0087】
本明細書に開示する実装形態と関連して説明する様々な例示的論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジックデバイス、個別のゲートもしくはトランジスタ論理、個別のハードウェア部品、または本明細書に記載した機能を行うように設計されたこれらの任意の組合せを用いて、実装または実施される場合がある。汎用プロセッサはマイクロプロセッサであり得るが、代替実施形態では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装することができる。
【0088】
本明細書に開示される態様に関して記述される方法またはアルゴリズムのステップは、ハードウェアにおいて直接具現されるか、プロセッサによって実行されるソフトウェアモジュールにおいて実装されるか、またはその2つの組合せで実装される場合がある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において既知の任意の他の形の記憶媒体に存在することができる。例示的記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサと一体化されてもよい。プロセッサおよび記憶媒体は、ASIC内に存在する場合がある。ASICは、アクセス端末中に存在する場合がある。代替として、プロセッサおよび記憶媒体は、アクセス端末に個別の構成要素として存在し得る。
【0089】
開示された実装形態の上記の説明は、当業者が、本明細書に記載する技術を作成または使用することができるように与えられる。これらの実装形態への様々な修正が当業者には容易に明らかになり、本明細書で定義される一般的な原理は、本明細書に記載する技術の趣旨または範囲を逸脱することなく他の実装形態に適用され得る。したがって、本明細書に記載する技術の態様は、本明細書において示される実装形態に限定されることを意図するものではなく、本明細書において開示された原理および新規の特徴に一致する最も広い範囲を与えられるべきである。