以下に述べる詳細な説明は、本願の技術の様々な構成の説明として意図されており、本願の技術を実践できる唯一の構成を表すことを意図するものではない。添付の図面は本明細書に組み込まれており、詳細な説明の一部を構成する。詳細な説明は、主題の技術の完全な理解を提供するために特定の詳細を含む。しかしながら、本願の技術は、本明細書で示された特定の詳細には限定されず、1つ以上の他の実装形態を使用して実施することができる。1つ以上の実装形態では、本願の技術の概念を不明瞭にすることを避けるために、構造及び構成要素がブロック図形式で示されている。
コンピュータ生成現実(computer-generated reality、CGR)システムは、物理的環境と仮想環境とを様々な程度で組み合わせて、リアルタイムでのユーザからの対話を容易にすることを可能にする。したがって、そのようなCGRシステムは、本明細書に記載されるように、主に物理的要素を含み、かつ(例えば、物理的要素を有さない)仮想環境よりも物理的環境に近い、拡張現実を含む、物理的環境と仮想環境との様々な可能な組み合わせを含むことができる。このようにして、物理的環境をCGRシステムによって仮想環境と接続することができる。CGR環境に没入したユーザは、そのような環境を介してナビゲートすることができ、CGRシステムは、ユーザの視点を追跡して、ユーザがCGR環境においてどのような状況にあるかに基づいて視覚化を行うことができる。
物理的環境とは、人々が電子システムの助けなしに、感知及び/又は対話することができる物理的世界を指す。物理的な公園などの物理的環境には、物理的な木々、物理的な建物、及び物理的な人々などの物理的物品が挙げられる。人々は、視覚、触覚、聴覚、味覚、及び臭覚などを介して、物理的環境を直接感知し、及び/又はそれと対話することができる。
対照的に、コンピュータ生成現実(computer-generated reality、CGR)環境は、人々が電子システムを介して感知及び/又は対話する、全体的又は部分的にシミュレーションされた環境を指す。CGRでは、人の身体運動のサブセット又はその表現が追跡され、それに応じて、CGR環境内でシミュレートされた1つ以上の仮想オブジェクトの1つ以上の特性が、少なくとも1つの物理学の法則でふるまうように調整される。例えば、CGRシステムは、人の身体及び/又は頭部の回転を検出し、それに応じて、そのようなビュー及び音が物理的環境において変化するのと同様に、人に提示されるグラフィカルコンテンツ及び音場を調整することができる。状況によっては(例えば、アクセス性の理由から)、CGR環境内の仮想オブジェクト(単数又は複数)の特性(単数又は複数)に対する調節は、身体運動の表現(例えば、音声コマンド)に応答して行われてもよい。
人は、視覚、聴覚、触覚、味覚及び嗅覚を含むこれらの感覚のうちのいずれか1つを使用して、CGRオブジェクトを感知し、かつ/又はCGRオブジェクトと対話してもよい。例えば、人は、3D空間において点音源の知覚を提供する、3D又は空間的広がりを有するオーディオ環境を作り出すオーディオオブジェクトを感知し、かつ/又はそのオーディオオブジェクトと対話することができる。別の例では、音声オブジェクトによって、コンピュータ生成音声を含めて、又は含めずに、物理的環境から周囲音を選択的に組み込む音声透過性が可能になり得る。いくつかのCGR環境では、人は、音声オブジェクトのみを感知し、かつ/又は音声オブジェクトのみと対話してもよい。
CGRの例としては、仮想現実及び複合現実が挙げられる。
仮想現実(virtual reality、VR)環境とは、1つ以上の感覚について、コンピュータ生成感覚入力に全面的に基づくように設計されたシミュレーション環境を指す。VR環境は、人が感知かつ/又は対話することができる複数の仮想オブジェクトを含む。例えば、木、建物、及び人々を表すアバターのコンピュータ生成画像は、仮想オブジェクトの例である。人は、コンピュータ生成環境内に人が存在することのシミュレーションを通じて、かつ/又はコンピュータ生成環境内の人の身体運動のサブセットのシミュレーションを通じて、VR環境内の仮想オブジェクトを感知し、かつ/又はその仮想オブジェクトと対話することができる。
コンピュータ生成感覚入力に全面的に基づくように設計されたVR環境とは対照的に、複合現実(mixed reality、MR)環境は、コンピュータ生成された感覚入力(例えば、仮想オブジェクト)を含むことに加えて、物理的環境からの感覚入力又はその表現を組み込むように設計された、シミュレートされた環境を指す。仮想の連続体上で、複合現実環境は、一方の端部における完全に物理的な環境と、他方の端部における仮想現実環境との間にあるが、両端部は含まない、任意の場所である。
いくつかのMR環境では、コンピュータ生成感覚入力は、物理的環境からの感覚入力の変更に応答し得る。また、MR環境を提示するためのいくつかの電子システムは、仮想オブジェクトが現実のオブジェクト(すなわち、物理的環境からの物理的物品又はその表現)と相互作用することを可能にするために、物理的環境に対する位置及び/又は向きを追跡してもよい。例えば、システムは、仮想の木が物理的な地面に対して静止して見えるように、動きを考慮することができる。
拡張現実(augmented reality、AR)環境は、物理的環境又はその表現の上に1つ以上の仮想オブジェクトが重ね合わされている、シミュレートされた環境を指す。例えば、AR環境を提示するための電子システムは、人が物理的環境を直接見ることができる透明又は半透明のディスプレイを有してもよい。システムは、透明又は半透明のディスプレイ上に仮想オブジェクトを提示するように構成されていてもよく、それによって、人は、システムを使用して、物理的環境の一部分の上に重ねられた仮想オブジェクトを知覚する。あるいは、システムは、不透明ディスプレイと、物理的環境の表現である、物理的環境の画像又はビデオをキャプチャする1つ以上の撮像センサとを有してもよい。システムは、画像又はビデオを仮想オブジェクトと合成し、その合成物を不透明ディスプレイ上に提示する。人は、このシステムを使用して、物理的環境を、物理的環境の画像又はビデオによって間接的に見て、物理的環境の一部分の上に、かつ/又は物理的環境の一部分の背後に重ね合わされた仮想オブジェクトを知覚する。本明細書で使用するとき、不透明ディスプレイ上に示される物理的環境のビデオは、「パススルービデオ」と呼ばれ、システムが、1つ以上の画像センサ(単数又は複数)を使用して、物理的環境の画像をキャプチャし、不透明ディスプレイ上にAR環境を提示する際にそれらの画像を使用することを意味する。更に代替的に、システムが仮想オブジェクトを、例えば、ホログラムとして物理的環境の中に、又は物理的表面に投影するプロジェクションシステムを有してもよく、それによって、人はシステムを使用して、物理的環境に重ね合わされた仮想オブジェクトを知覚する。
拡張現実環境はまた、物理的環境の表現がコンピュータ生成感覚情報によって変換されるシミュレーション環境を指す。例えば、パススルービデオを提供する際に、システムは、1つ以上のセンサ画像を、撮像センサがキャプチャした透視図とは別の選択された透視図(例えば、視点)を面付けするように変形してもよい。別の例として、物理的環境の表現を、その一部分をグラフィカルに変更(例えば、拡大)することによって変形してもよく、それにより、変更された部分を、元のキャプチャ画像を表すが非写実的な、改変版にすることもできる。更なる例として、物理的環境の表現は、その一部分をグラフィカルに除去又は不明瞭化することによって変形されてもよい。
拡張仮想(augmented virtuality、AV)環境は、物理的環境からの1つ以上の感覚入力を仮想環境又はコンピュータ生成環境が組み込む、シミュレートされた環境を指す。感覚入力は、物理的環境の1つ以上の特性の表現であり得る。例えば、AVの公園には仮想の木及び仮想の建物があり得るが、顔がある人々は、物理的な人々が撮られた画像から写実的に再現される。別の例として、仮想オブジェクトは、1つ以上の撮像センサによって撮像された物理的物品の形状又は色を採用してもよい。更なる例として、仮想オブジェクトは、物理的環境内の太陽の位置と一致する影を採用することができる。
多種多様の電子システムが存在することによって、人が様々なCGR環境を感知し、かつ/又はCGR環境と対話できるようになる。例としては、モバイルデバイス、タブレットデバイス、プロジェクションベースシステム、ヘッドアップディスプレイ(heads-up display、HUD)、ヘッドマウントシステム、統合表示機能を有する車両ウィンドシールド、統合表示機能を有する窓、(例えば、コンタクトレンズと同様に)人の目の上に配置されるように設計されたレンズとして形成されたディスプレイ、ヘッドホン/イヤフォン、スピーカアレイ、入力システム(例えば、触覚フィードバックを有する又は有さない、装着型コントローラ又はハンドヘルドコントローラ)、スマートフォン、タブレット又はタブレットデバイス、及びデスクトップ/ラップトップコンピュータが挙げられる。例えば、ヘッドマウントシステムは、1つ以上のスピーカ(単数又は複数)及び一体型不透明ディスプレイを有してもよい。あるいは、ヘッドマウントシステムは、外部の不透明ディスプレイ(例えば、スマートフォン)を受容するように構成されていてもよい。ヘッドマウントシステムは、物理的環境の画像若しくはビデオをキャプチャするための1つ以上の撮像センサ、及び/又は物理的環境の音声をキャプチャするための1つ以上のマイクロフォンを組み込んでいてもよい。ヘッドマウントシステムは、不透明ディスプレイではなく、透明又は半透明のディスプレイを有してもよい。透明又は半透明のディスプレイは、画像を表す光が人の目に向けられる媒体を有してもよい。ディスプレイは、デジタル光投影、OLED、LED、uLED、液晶オンシリコン、レーザスキャン光源、又はこれらの技術の任意の組み合わせを利用することができる。媒体は、光導波路、ホログラム媒体、光結合器、光反射器、又はこれらの任意の組み合わせであってもよい。一実施形態では、透明又は半透明のディスプレイは、選択的に不透明になるように構成されていてもよい。プロジェクションベースシステムは、グラフィカル画像を人の網膜上に投影する網膜投影技術を採用することができる。プロジェクションシステムはまた、例えば、ホログラムとして、又は物理的表面上に、仮想オブジェクトを物理的環境内に投影するように構成されていてもよい。
CGRシステムは、物理的環境とコンピュータ生成環境とを様々な程度で組み合わせて、リアルタイムでのユーザからの対話を容易にすることを可能にする。したがって、そのようなCGRシステムは、本明細書に記載されるように、物理的環境とコンピュータ生成環境との様々な可能な組み合わせを含むことができる。このようにして、物理的環境をCGRシステムによってコンピュータ生成環境と接続することができる。例えば、電子デバイスを介して、コンピュータ生成環境に没入したユーザは、そのような環境を介してナビゲートすることができ、システムは、ユーザの視点を追跡して、ユーザが、コンピュータ生成環境においてどのような状況にあるかに基づいて視覚化を提供することができる。例えば、アバターによって、ユーザをコンピュータ生成環境内に表すことができる。
仮想カメラは、コンピュータ生成環境全体にわたって配置して、コンピュータ生成環境全体にわたってユーザのアバターの動きの仮想画像及び/又は仮想ビデオをキャプチャすることができ、一方で、物理的カメラ、例えば、画像キャプチャデバイスは、ユーザを取り囲む物理的環境全体にわたって配置して、取り囲んでいる物理的環境の画像及び/又はビデオをキャプチャすることができる。本願のシステムは、コンピュータ生成環境内のユーザのアバター及び物理的環境内のユーザに対する仮想カメラ及び物理的カメラの位置同期を容易にし、それにより、仮想カメラによってキャプチャされた仮想画像が、物理的カメラによってキャプチャされた物理的画像と位置的に整列し、かつ/又は視点整列する。このようにして、位置的に整列かつ/又は視点整列した仮想画像と物理的画像とを合成して、コンピュータ生成現実画像及び/又はコンピュータ生成現実記録を生成することができる。
例えば、本願のシステムは、ユーザが、物理的環境内のユーザの動きの画像/ビデオをキャプチャする物理的カメラの位置を、コンピュータ生成環境内のユーザのアバターの動きの仮想画像/ビデオを同時にキャプチャしている仮想カメラの位置と同期させることを容易にすることができる。このようにして、ユーザの画像/ビデオを、物理的環境からキャプチャされた画像/ビデオからセグメント化することができ、ユーザの画像/ビデオを仮想画像/ビデオと合成して、ユーザのアバターが物理的環境内のユーザの画像に置き換えられているコンピュータ生成現実画像/記録を生成することができる。
また、本願のシステムを使用して、モバイルデバイス又はタブレットなどの別のユーザのデバイスが、電子デバイスを使用及び/又は装着するユーザが経験しているCGR環境へのビューポートとして動作することを可能にすることができる。例えば、本願のシステムは、物理的環境内の上記別のユーザのデバイスの位置と同期された位置に、CGR環境内の仮想カメラを配置することができる。次いで、仮想オブジェクトを、仮想画像からセグメント化し、上記別のユーザのデバイスの物理的カメラによって同時にキャプチャされている物理的画像と合成して、ユーザが経験しているCGR環境へのビューポートを上記別のユーザに提供することができる。
図1は、1つ以上の実装形態に係る、本願のシステムを実装し得る様々な電子デバイスを含む、例示的なシステムアーキテクチャ100を示す。しかしながら、描写された構成要素の全てが全ての実装形態において使用されなくてもよく、また、1つ以上の実装形態は、図に示されたものに追加の又は異なる構成要素を含んでもよい。本明細書で示された特許請求の範囲の趣旨又は範囲から逸脱することなく、構成要素の構成及びタイプの変形を行うことができる。追加の構成要素、異なる構成要素、又はより少ない構成要素が提供されてもよい。
システムアーキテクチャ100は、電子デバイス105と、ハンドヘルド電子デバイス104と、電子デバイス110と、電子デバイス115と、サーバ120と、を含む。説明のために、システムアーキテクチャ100は、電子デバイス105と、ハンドヘルド電子デバイス104と、電子デバイス110と、電子デバイス115と、サーバ120とを含むものとして、図1に示されている。しかしながら、システムアーキテクチャ100は、任意の数の電子デバイス、及び任意の数のサーバ、又は複数のサーバを含むデータセンターを含むことができる。
電子デバイス105は、例えば、タブレットデバイス、ハンドヘルドデバイス及び/若しくはモバイルデバイスとして、又は(例えば、ユーザ101によって装着された)ヘッドマウントポータブルシステムとして実装することができる。電子デバイス105は、コンピュータ生成現実環境の視覚化をユーザに提示することができるディスプレイシステムを含む。電子デバイス105は、バッテリ及び/又は別の電源で電力供給することができる。一実施例では、電子デバイス105のディスプレイシステムは、コンピュータ生成現実環境の立体プレゼンテーションを提供し、ユーザへの特定のシーンのレンダリングの3次元視覚表示を可能にする。1つ以上の実装形態では、電子デバイス105を利用してコンピュータ生成現実環境にアクセスする代わりに、又はそれに加えて、ユーザは、タブレット、ウォッチ、モバイルデバイスなどのハンドヘルド電子デバイス104を使用してもよい。
電子デバイス105は、カメラ(単数又は複数)150(例えば、可視光カメラ、赤外線カメラなど)などの1つ以上のカメラを含むことができる。更に、電子デバイス105は、カメラ、画像センサ、タッチセンサ、マイクロフォン、慣性測定ユニット(inertial measurement unit、IMU)、心拍数センサ、温度センサ、深度センサ(例えば、Lidarセンサ、レーダーセンサ、ソナーセンサ、飛行時間センサなど)、GPSセンサ、Wi-Fiセンサ、近距離通信センサ、無線周波数センサなどを含むが、これらに限定されない、様々なセンサ152を含むことができる。更に、電子デバイス105は、ハードウェアボタン又はハードウェアスイッチなどの、ユーザ入力を受信することができるハードウェア要素を含むことができる。そのようなセンサ及び/又はハードウェア要素によって検出されたユーザ入力は、例えば、アプリケーション内からの共存セッションを開始するための様々な入力モダリティに対応する。例えば、そのような入力モダリティとしては、顔追跡、視線追跡(例えば、視線方向)、手追跡、ジェスチャ追跡、バイオメトリック読み取り(例えば、心拍数、脈拍、瞳孔拡張、呼吸、体温、脳波、嗅覚)、スピーチ又はオーディオの認識(例えば、特定のホットワード)、及びボタン又はスイッチのアクティブ化などが挙げることができるが、これらに限定されない。
1つ以上の実装形態では、電子デバイス105は、電子デバイス110及び/又は電子デバイス115などのベースデバイスに通信可能に結合することができる。そのようなベースデバイスは、一般に、電子デバイス105と比較して、より多くのコンピューティングリソース及び/又は利用可能な電力を含むことができる。一実施例では、電子デバイス105は、様々なモードで動作することができる。例えば、電子デバイス105は、任意のベースデバイスとは無関係に、スタンドアロンモードで動作することができる。電子デバイス105がスタンドアロンモードで動作するとき、入力モダリティの数は、デバイスの利用可能なバッテリ電力などの電子デバイス105の電力制限及び/又は処理制限によって、制約され得る。電力制限に応じて、電子デバイス105は、バッテリ電力を保存するために、及び/又は処理リソースを解放するために、デバイス自体内の特定のセンサを非アクティブ化することができる。
電子デバイス105はまた、(例えば、ベースデバイスとの無線接続を介して接続される)無線テザリングモードで動作して、所与のベースデバイスと連携して機能することができる。電子デバイス105はまた、電子デバイス105が(例えば、ケーブル又は何らかの他の物理コネクタを介して)ベースデバイスに物理的に接続される、接続モードで機能することができ、(例えば、ベースデバイスが物理的に接続されている間に電子デバイス105に充電している場合)ベースデバイスによって提供される電力リソースを利用することができる。
電子デバイス105が無線テザリングモード又は接続モードで動作するとき、ユーザ入力の処理及び/又はコンピュータ生成現実環境のレンダリングの少なくとも一部分は、ベースデバイスにオフロードすることができ、それによって、電子デバイス105の処理の負担が低減される。例えば、一実装形態では、電子デバイス105は、電子デバイス110又は電子デバイス115と連携して機能して、リアルタイムでの、ユーザと生成されたコンピュータ生成現実環境との間の異なる形態の対話(例えば、視覚的対話、聴覚的対話、及び/又は物理的対話若しくは触知対話)を可能にする、物理的及び/又は仮想オブジェクトを含むコンピュータ生成現実環境を生成する。一実施例では、電子デバイス105は、別のユーザとの共存セッションのためのホスト環境などの、ユーザが知覚して、リアルタイムで対話することができるコンピュータ生成現実環境に対応するシーンのレンダリングを提供する。加えて、レンダリングされたシーンを提示することの一部として、電子デバイス105は、音、及び/又は触覚フィードバック若しくは触知フィードバックをユーザに提供することができる。所与のレンダリングされたシーンのコンテンツは、利用可能な処理能力、ネットワークの利用可能性及び容量、利用可能なバッテリ電力、並びに現在のシステムワークロードに依存し得る。
電子デバイス105はまた、コンピュータ生成現実環境のシーン内で発生したイベントを検出することができる。そのようなイベントの例としては、シーン内の特定の人、エンティティ、又はオブジェクトの存在を検出することが挙げられる。検出されたイベントに応じて、電子デバイス105は、検出されたイベントに対応するコンピュータ生成現実環境内に(例えば、メタデータの形態で)注釈を提供することができる。
ネットワーク106は、例えば、電子デバイス104、電子デバイス105、電子デバイス110、及び/又は電子デバイス115を他のデバイスと互いに、及び/又はサーバ120と通信可能に(直接的又は間接的に)結合することができる。1つ以上の実装形態では、ネットワーク106は、インターネットを含み得る、又はインターネットに通信可能に結合され得る、相互接続されたデバイスのネットワークであってもよい。
電子デバイス110は、タッチスクリーンを含んでもよく、例えば、タッチスクリーンを含むスマートフォン、タッチスクリーンを含むラップトップコンピュータなどのポータブルコンピューティングデバイス、タッチスクリーンを含むコンパニオンデバイス(例えば、デジタルカメラ、ヘッドホン)、タッチスクリーンを含むタブレットデバイス、ウォッチ、バンドなどの、タッチスクリーンを含むウェアラブルデバイス、例えば、タッチスクリーンを含む任意の他の適切なデバイス、又はタッチパッドを有する任意の電子デバイスであってもよい。1つ以上の実装形態では、電子デバイス110は、タッチスクリーンを含まなくてもよいが、コンピュータ生成現実環境内などの、タッチスクリーンのようなジェスチャをサポートしてもよい。1つ以上の実装形態では、電子デバイス110は、タッチパッドを含むことができる。図1では、例として、電子デバイス110が、タッチスクリーンを有するモバイルスマートフォンデバイスとして描写されている。1つ以上の実装形態では、電子デバイス110、ハンドヘルド電子デバイス104、及び/又は電子デバイス105は、図8に関して以下で説明する電子システムに関して以下で説明する電子デバイスであってもよく、かつ/又はその全て若しくは一部を含んでもよい。1つ以上の実装形態では、電子デバイス110は、インターネットプロトコル(Internet Protocol、IP)カメラ、タブレット、又は電子スタイラスなどのコンパニオンデバイスなどの別のデバイスであってもよい。
電子デバイス115は、例えば、デスクトップコンピュータ、ラップトップコンピュータなどのポータブルコンピューティングデバイス、スマートフォン、コンパニオンデバイス(例えば、デジタルカメラ、ヘッドホン)、タブレットデバイス、ウォッチ、バンドなどのウェアラブルデバイスなどであってもよい。図1では、例として、電子デバイス115がデスクトップコンピュータとして描写されている。電子デバイス115は、図8に関して以下で説明する電子システムであってもよく、かつ/又はその全て若しくは一部を含んでもよい。
サーバ120は、クラウドコンピューティング実装形態又はデータセンター実装形態などの、コンピュータのネットワーク又はサーバのグループ130の全て又は一部を形成することができる。例えば、サーバ120は、データ及びソフトウェアを記憶し、コンピュータ生成現実環境のグラフィック、画像、ビデオ、オーディオ、及びマルチメディアファイルなどのコンテンツをレンダリング及び生成するための特定のハードウェア(例えば、プロセッサ、グラフィックスプロセッサ、及び他の専用プロセッサ又はカスタムプロセッサ)を含む。一実装形態では、サーバ120は、上述のデバイス及び/又はサーバ120によって生成された前述のコンピュータ生成現実コンテンツのうちのいずれかを記憶するクラウドストレージサーバとして機能することができる。
図6に関して以下で更に説明する1つ以上の実装形態では、コンピュータ生成現実環境にアクセスするために電子デバイス105を利用する、かつ/又は電子デバイス104を利用するユーザは、物理的環境内のユーザの身体の画像を、電子デバイス105によって提供されているコンピュータ生成環境及び/又はコンピュータ生成現実環境から生成された仮想画像フレーム、例えば、仮想ビデオとマージする記録を生成することを望む場合がある。しかしながら、ユーザの身体の画像を仮想画像フレーム上に合成するために、物理的環境内のユーザの身体の画像をキャプチャする物理的カメラ、例えば、電子デバイス110の位置を、コンピュータ生成環境から仮想画像フレームを生成する仮想カメラの位置と同期(例えば、整列)させる必要があり得る。
本願のシステムは、ユーザの物理的カメラ及び仮想カメラの位置同期を、物理的環境内の物理的カメラの位置と一致する位置に、コンピュータ生成環境内の仮想カメラを自動的に配置することによって容易にし、その例示的なプロセスを図3に関して以下で更に説明され、かつ/又はコンピュータ生成環境内の仮想カメラの位置と一致する位置に物理的環境内の物理的カメラ、例えば、電子デバイス110を配置するためのガイダンスをユーザに提供することによって容易にし、その例示的なプロセスを図4に関して以下で更に説明する。次いで、本願のシステムは、物理的カメラによってキャプチャされた画像フレームの少なくとも一部分を、仮想カメラによって生成された仮想画像フレームと合成して、コンピュータ生成現実画像フレームを生成することができる。
図7に関して以下で更に説明する1つ以上の実装形態では、ユーザが電子デバイス105を使用及び/又は装着して、コンピュータ生成現実環境にアクセスしているときに、別のユーザが、上記ユーザが経験しているコンピュータ生成現実環境を見ることを望む場合がある。本願のシステムは、(電子デバイス105に対する)物理的環境内の他のユーザの電子デバイスの物理的カメラの位置と一致するコンピュータ生成現実環境内の位置に仮想カメラを配置することによって、電子デバイス105によって提供されているコンピュータ生成現実環境へのビューポートとして、上記別のユーザが電子デバイス110などの上記別のユーザの電子デバイスを使用することを可能にする。別のユーザが経験しているコンピュータ生成現実環境へのビューポートを提供する例示的なプロセスは、図5に関して以下で更に説明する。
1つ以上の実装形態では、電子デバイスを使用及び/又は装着してコンピュータ生成現実環境を経験しているユーザは、ユーザが経験しているコンピュータ生成現実環境と合成された物理的環境から、ユーザの身体の画像を含むコンピュータ生成現実環境内のユーザ自身のコンピュータ生成現実画像(例えば、コンピュータ生成現実「セルフィー」)を生成することを望む場合がある。しかしながら、物理的環境からキャプチャされた画像がコンピュータ生成環境から生成された仮想画像と整列するために、本願のシステムは、物理的なカメラからの画像フレームを仮想カメラからの仮想画像フレームと合成することができるように、(電子デバイス105に対する)物理的環境内の物理的カメラの位置と同期及び/又は整列する位置に、コンピュータ生成環境内の仮想カメラを配置する。
説明のために、本願のシステムは、1つの仮想カメラの位置を1つの物理的カメラに同期させることに関して本明細書に記載されている。しかしながら、本願のシステムを使用して、1つ以上の仮想カメラの位置を1つ以上の物理的カメラに同期させることができる。1つ以上の実装形態では、本願のシステムをユーザによって利用して、任意の物理的カメラを使用せずに、コンピュータ生成環境内に仮想カメラを配置することができる。
図2は、1つ以上の実装形態に係る、仮想カメラ及び物理的カメラの位置同期に使用され得る例示的な電子デバイス110を示す。しかしながら、描写された構成要素の全てが全ての実装形態において使用されなくてもよく、また、1つ以上の実装形態は、図に示されたものに追加の又は異なる構成要素を含んでもよい。本明細書で示された特許請求の範囲の趣旨又は範囲から逸脱することなく、構成要素の構成及びタイプの変形を行うことができる。追加の構成要素、異なる構成要素、又はより少ない構成要素が提供されてもよい。1つ以上の実装形態では、電子デバイス105、電子デバイス112、電子デバイス115、及び/又はサーバ120の1つ以上の構成要素。
電子デバイス110は、ホストプロセッサ202、メモリ204、無線インタフェース206、画像キャプチャデバイス208、及び1つ以上の位置センサ(単数又は複数)210を含んでもよい。1つ以上の実装形態では、電子デバイス110は、無線インタフェース206を位置センサとして利用してもよく、任意の追加の位置センサ210を含んで、又は含まなくてもよい。
無線インタフェース206は、無線通信を送信/受信するための1つ以上のアンテナ及び1つ以上のトランシーバを含んでもよい。1つ以上の実装形態では、無線インタフェース206は、電子デバイス105などの別のデバイスと無線測距動作を実行するように構成することができる。無線測距動作は、例えば、交換された信号から判定された到着時間及び/又は到着角に基づいてなど、ミリメートル及び/又はサブミリメートルの位置決め精度を提供する超広帯域信号(例えば、500Mhz信号)を交換することによって実行される測距動作を含んでもよい。
画像キャプチャデバイス208は、例えば、1つ以上の画像センサであってもよく、かつ/又は1つ以上の画像センサを含んでもよい。画像キャプチャデバイス208は、赤外線デバイス、発光ダイオードデバイス、又は一般に任意の照明デバイスなどの1つ以上の照明デバイスを更に含むことができる。1つ以上の実装形態では、画像キャプチャデバイス208は、部分的に及び/又は全体的に、物理的カメラと呼ばれることがある。1つ以上の実装形態では、画像キャプチャデバイス208を使用して、電子デバイス105などの別のデバイスに対する電子デバイス110の位置を判定することができる。例えば、画像キャプチャデバイス208の1つ以上の画像センサを使用して、深度マップを生成し、かつ/他の場合には電子デバイス105などの別のデバイスの深度を判定することができる。
1つ以上の実装形態では、また、画像キャプチャデバイス208を使用して、物理的環境の画像からユーザの身体の画像をセグメント化することができる。例えば、1つ以上の深度マップは、画像キャプチャデバイス208の複数の画像センサによってキャプチャされた画像から生成することができ、1つ以上の深度マップを使用して、ユーザなどの画像内のオブジェクトを識別/セグメント化することができる。
1つ以上の位置センサ210は、別のデバイス、例えば、電子デバイス105に対するなど、電子デバイス110の位置を判定するために使用することができる情報を提供することができる、1つ以上のセンサを含んでもよい。例えば、1つ以上の位置センサは、1つ以上のジャイロスコープ、加速度計、マグノメータ(magnometer)、超音波トランシーバ、レーダー/ライダートランシーバ、又は電子デバイス105などの別のデバイスに対する電子デバイス110の位置を判定することを容易にすることができる一般に任意のセンサを含んでもよい。1つ以上の実装形態では、また、1つ以上の位置センサ210を使用して、例えば、x軸、y軸、及び/又はz軸に沿った、電子デバイス110の向きを判定することもできる。
ホストプロセッサ202は、データを処理すること、及び/又は電子デバイス110の動作を制御することを可能にする、好適なロジック、回路、及び/又はコードを含んでもよい。これに関しては、ホストプロセッサ202は、電子デバイス110の様々な他の構成要素に制御信号を提供することが可能であってもよい。ホストプロセッサ202はまた、電子デバイス110の様々な部分間でのデータ転送を制御してもよい。加えて、ホストプロセッサ202は、電子デバイス110の動作を管理するために、オペレーティングシステムの実施を可能にする、又は他の場合には、コードを実行することができる。1つ以上の実装形態では、ホストプロセッサ202は、コンピュータビジョンを使用して、電子デバイス105などの別のデバイスに対する電子デバイス110の位置を判定することを容易にすることができる。例えば、ホストプロセッサ(及び/又はサーバ120などにある1つ以上のリモート処理ユニット)は、画像キャプチャデバイス208によってキャプチャされた1つ以上の画像を分析して、電子デバイス105などの1つ以上の画像に示される別のデバイスに対する電子デバイス110の位置を判定することができる。
メモリ204は、受信データ、生成データ、コード、及び/又は構成情報などの様々なタイプの情報の記憶を可能にする、好適なロジック、回路、及び/又はコードを含んでもよい。メモリ204は、例えば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュ、及び/又は磁気記憶装置を含んでもよい。
1つ以上の実装形態では、ホストプロセッサ202、メモリ204、無線インタフェース206、画像キャプチャデバイス208、1つ以上の位置センサ210、及び/又はそれらの1つ以上の部分のうちの1つ以上は、ソフトウェア(例えば、サブルーチン及びコード)で実装されてもよく、ハードウェア(例えば、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)、プログラマブルロジックデバイス(Programmable Logic Device、PLD)、コントローラ、ステートマシン、ゲートロジック、ディスクリートハードウェア構成要素、又は任意の他の好適なデバイス)、及び/又はその両方の組み合わせで実装されてもよい。
図3は、1つ以上の実装形態に係る、物理的カメラに対する仮想カメラの自動位置同期の例示的なプロセス300のフロー図を示す。説明のために、プロセス300は、本明細書では主として図1の電子デバイス105を参照して説明する。しかしながら、電子デバイス105は、例示的なデバイスとして提示されたものであり、本明細書で説明された動作のうちの1つ以上は、任意の好適なデバイスによって実行されてもよい。例えば、プロセス300は、電子デバイス110又は一般に任意の電子デバイスによって実行されてもよい。更に、説明のために、プロセス300の動作は、本明細書では逐次的に又は直線的に発生するものとして記載されている。しかしながら、プロセス300の複数の動作が並行して発生してもよい。加えて、プロセス300の動作は、図示された順序で実行される必要はなく、かつ/又は、プロセス300の動作のうちの1つ以上は、実行される必要はなく、かつ/若しくは他の動作によって置き換えることができる。
例示的なプロセス300は、物理的環境内のユーザの身体の画像を、電子デバイス105によって提供されているコンピュータ生成環境及び/又はコンピュータ生成現実環境から生成された仮想画像フレーム、例えば、仮想ビデオとマージする記録を生成することを望む、電子デバイス105を利用してコンピュータ生成環境及び/又はコンピュータ生成現実環境を経験するユーザによって開始することができる。例えば、ユーザは、図6に示されるように、物理的カメラの視野が、物理的環境内の電子デバイス105を使用及び/又は装着する、かつ/又は電子デバイス104を利用するユーザを含むように、電子デバイス110などの物理的カメラを含む他の電子デバイスを配置することができる。次いで、ユーザは、例えば、電子デバイス105及び/又は電子デバイス110を介して、例示的なプロセス300を開始する構成オプションを選択することができる。
例示的なプロセス300が開始されると、電子デバイス105は、物理的環境内の電子デバイス105に対する電子デバイス110などの物理的カメラの位置(例えば、位置及び向き)を判定する(302)。例えば、電子デバイス105は、物理的カメラが測距動作をサポートする無線インタフェースを含む場合、超広帯域測距動作などの、物理的カメラとの測距動作を開始することができる。1つ以上の実装形態では、電子デバイス105は、1つ以上の画像センサを利用して、コンピュータビジョン、深度マップなどを利用することなどによって、物理的カメラの位置を判定することができる。1つ以上の実装形態では、電子デバイス105は、例えば、物理的カメラから、電子デバイス105に対する物理的カメラの位置を受信することができる。例えば、物理的カメラは、電子デバイス105に対するその位置を判定するために使用することができる追加の位置センサを含んでもよい。
電子デバイス105は、電子デバイス105に対する物理的環境内の物理的カメラの位置と一致するように、電子デバイス105によって提供されているコンピュータ生成現実環境内の仮想カメラの配置を開始することができる(304)。仮想カメラは、物理的カメラによってキャプチャされた画像フレームが仮想カメラによって生成された仮想画像フレームと整列するように、電子デバイス105に対する物理的カメラの向き及び位置と一致する向き及び位置で配置することができる。例えば、ユーザのアバターなどのコンピュータ生成環境内の電子デバイス105に対応する仮想表現に対する仮想カメラの位置は、電子デバイス105に対する物理的環境内の物理的カメラの位置及び向きと一致することができる。
電子デバイス105は、仮想カメラによるコンピュータ生成環境の仮想記録の生成を開始することと同時に、物理的カメラによる物理的環境の記録を開始することができる(306)。例えば、電子デバイス105は、物理的カメラが記録を開始すべき時間を示すメッセージを物理的カメラに送信することができる。1つ以上の実装形態では、記録は、同時に開始されなくてもよいが、仮想カメラ及び/又は物理的カメラは、例えば、タイムスタンプに基づいて、画像が後に時間整列することができるように、時間的に同期することができる。
電子デバイス105は、物理的カメラによってキャプチャされた画像フレーム及び仮想カメラによってキャプチャされた仮想画像フレームを受信することができる(308)。例えば、物理的カメラは、有線接続及び/又は無線接続を介して、画像フレームを電子デバイス105にストリーミングすることができる。電子デバイス105は、画像フレーム又は仮想画像フレームのうちの少なくとも1つをセグメント化することができる(310)。例えば、電子デバイス105は、コンピュータビジョン/オブジェクト認識を利用することによって、並びに/又は、深度マップ若しくは画像フレームからユーザの画像を識別しセグメント化するために使用することができる他の情報など、電子デバイス110によって提供される画像フレームに対応する追加のデータを利用することによって、など、物理的画像フレームからユーザの画像をセグメント化することができる。1つ以上の実装形態では、ユーザは、画像フレームからユーザの画像をセグメント化することを容易にする、グリーンスクリーンなどの均一に着色されたスクリーンの前に立っていてもよい。
1つ以上の実装形態では、電子デバイス110は、深度マップを生成するために使用することができる、又は他の場合には、画像フレームからユーザの画像をセグメント化するために使用することができる情報を生成するために使用することができる、複数の画像センサなどの1つ以上のセンサを含んでもよい。電子デバイス110は、電子デバイス105がセグメント化をバイパスし、セグメント化されたユーザ画像を仮想画像上に合成することができるように、ユーザのセグメント化された画像を電子デバイス105に提供することができる。
電子デバイス105は、画像フレーム(例えば、セグメント化されたユーザ画像)の少なくとも一部分、及び、ユーザの仮想表現、例えばユーザのアバターを除く仮想画像フレームの全体などの、仮想画像フレームの少なくとも一部分から、コンピュータ生成現実フレームを生成する(312)。1つ以上の実装形態では、電子デバイス105は、ユーザの画像を、対応する仮想画像フレーム内のユーザのアバター上に重ねて、コンピュータ生成現実画像フレームを生成することができる。
電子デバイス105は、ユーザに表示するために、ローカルストレージ及び/若しくはリモートストレージのために、並びに/又は1人以上の他のユーザへのストリーミングのためになど、コンピュータ生成現実画像フレームを提供する(314)。動作308~314を、各画像フレーム及び対応する仮想画像フレームに対して繰り返して、コンピュータ生成現実ビデオストリームを生成することができる。したがって、例えば、ユーザがコンピュータ生成現実ビデオストリームをプレビューし、必要かつ/又は望ましい場合がある任意の物理的カメラ及び/又は仮想カメラの調整を行うことができるように、コンピュータ生成現実画像フレーム及び/又はコンピュータ生成現実ビデオストリームを、電子デバイス105によってユーザに表示することができる。
1つ以上の実装形態では、電子デバイス105は、電子デバイス105に対する物理的カメラの位置を連続的に監視することができ(302)、物理的カメラの位置の変化と一致するように、仮想カメラの位置を連続的に調整することができる。したがって、別のユーザが物理的カメラを保持しており、かつその別のユーザが物理的カメラを移動させている、揺らしている、又は他の場合には固定位置に保持していない場合、仮想カメラの位置もまた、コンピュータ生成現実画像フレームの物理的画像フレーム部分のみではなく、コンピュータ生成現実画像フレームの全体が移動/揺れを反映するように、移動する、かつ/又は揺れる。
1つ以上の実装形態では、例示的なプロセス300は、電子デバイス110によって、全て又は部分的に実行することができる。例えば、電子デバイス110は、電子デバイス105に命令を送信することができ、電子デバイス105によって配置された仮想カメラによって生成された仮想画像フレームのストリームを受信することができる。1つ以上の実装形態では、例示的なプロセス300の少なくとも一部分は、サーバ120によって実行されてもよく、かつ/又はサーバ120によって容易にされてもよい。例えば、サーバは、物理的カメラによってキャプチャされた画像フレーム、並びに仮想画像カメラによって生成された仮想画像フレームを受信してもよく、コンピュータ生成現実画像フレームを生成してもよく、コンピュータ生成現実画像フレームを電子デバイス110、電子デバイス105、及び/又はユーザのコンピュータ生成現実ビデオストリームを見ることを許可された他のユーザの電子デバイスなどの1つ以上の追加の電子デバイスに送信してもよい。
1つ以上の実装形態では、電子デバイス105、及び電子デバイス110などの物理的カメラは両方とも、同じユーザアカウントに関連付ける、かつ/又は登録することができる。電子デバイス105及び/又は電子デバイス110は、例示的なプロセス300を開始する前に、他のデバイスが同じユーザアカウントに関連付けられていることを確認することができる。代替的に、及び/又は加えて、電子デバイス105及び電子デバイス110は、異なるユーザアカウントに関連付けることができ、例示的なプロセス300を模倣する前に、初期ペアリング/権限付与動作に関与することができる。
図4は、1つ以上の実装形態に係る、仮想カメラに対する物理的カメラの位置同期のためのガイダンスを提供する例示的なプロセスのフロー図を示す。説明のために、プロセス400は、本明細書では主として図1の電子デバイス105を参照して説明する。しかしながら、電子デバイス105は、例示的なデバイスとして提示されたものであり、本明細書で説明された動作のうちの1つ以上は、任意の好適なデバイスによって実行されてもよい。例えば、プロセス400は、電子デバイス110又は一般に任意の電子デバイスによって実行されてもよい。更に、説明のために、プロセス400の動作は、本明細書では逐次的に又は直線的に発生するものとして記載されている。しかしながら、プロセス400の複数の動作が並行して発生してもよい。加えて、プロセス400の動作は、図示された順序で実行される必要はなく、かつ/又は、プロセス400の動作のうちの1つ以上は、実行される必要はなく、かつ/若しくは他の動作によって置き換えることができる。
例示的なプロセス400は、物理的環境内のユーザの身体の画像を、電子デバイス105によって提供されているコンピュータ生成環境及び/又はコンピュータ生成現実環境から生成された仮想画像フレーム、例えば、仮想ビデオとマージする記録を生成することを望む、電子デバイス105を使用及び/又は装着してコンピュータ生成環境及び/又はコンピュータ生成現実環境を経験するユーザによって開始することができる。例えば、ユーザは、コンピュータ生成環境内において、望ましい角度又は視野を有する特定の位置に仮想カメラを配置することができる。次いで、ユーザインタフェース要素を選択することなどによって、プロセス400を開始して、図6に示すように、ユーザが、コンピュータ生成環境内の仮想カメラの位置と一致する物理的環境内の位置に、電子デバイス110などの物理的カメラを配置することを容易にすることができる。
例示的なプロセス400が開始されると、電子デバイス105は、コンピュータ生成環境内の電子デバイス105に対応する位置に対する電子デバイス105によって提供されているコンピュータ生成環境内の仮想カメラの位置を判定する(402)。コンピュータ生成環境内の電子デバイス105に対応する位置は、例えば、コンピュータ生成環境内のユーザのアバターの位置であってもよい。
次いで、電子デバイス105は、コンピュータ生成環境内の仮想カメラの位置と一致する電子デバイス105に対する位置に物理的環境内の物理的カメラを配置するためのガイダンスをユーザに提供する(404)。例えば、電子デバイス105は、物理的なカメラが配置されるべき物理的環境内の位置を示す拡張現実表示をユーザに提供することができる。
1つ以上の実装形態では、プロセス400は、電子デバイス110などの物理的カメラによって実行することができる。例えば、物理的カメラは、電子デバイス105から位置情報を受信することができ、次いで、ユーザが物理的環境内の適切な位置に物理的カメラを配置することを容易にすることができる。1つ以上の実装形態では、物理的カメラは、電子デバイス105によって示される位置に物理的カメラを自動的に移動させることができる、ドローン又はロボットデバイスなどの自律的に移動するデバイスに含まれていてもよい。
図5は、1つ以上の実装形態に係る、コンピュータ生成現実環境へのビューポートを提供する例示的なプロセスのフロー図を示す。説明のために、プロセス500は、本明細書では主として図1の電子デバイス110を参照して説明する。しかしながら、電子デバイス110は、例示的なデバイスとして提示されたものであり、本明細書で説明された動作は、任意の好適なデバイスによって実行されてもよい。例えば、プロセス500は、電子デバイス112又は一般に任意の電子デバイスによって実行されてもよい。更に、説明のために、プロセス500の動作は、本明細書では逐次的に又は直線的に発生するものとして記載されている。しかしながら、プロセス500の複数の動作が並行して発生してもよい。加えて、プロセス500の動作は、図示された順序で実行される必要はなく、かつ/又は、プロセス500の動作のうちの1つ以上は、実行される必要はなく、かつ/若しくは他の動作によって置き換えることができる。
例示的なプロセス500は、ユーザが電子デバイス105を介してコンピュータ生成現実環境を経験しており、かつ別のユーザがそのコンピュータ生成現実環境を見たいと思うときに開始されてもよい。例えば、図7に示すように、電子デバイス105を使用及び/又は装着するユーザは、テーブルなどの物理的環境内の物理的オブジェクト上に(かつ/又はそれに隣接して)仮想ゲームボードが配置されている仮想ゲームをプレイすることができる。部屋内の他のユーザは、物理的テーブルを見ることができるが、電子デバイス105を使用及び/又は装着するユーザによって物理的テーブル上で行われている仮想ゲームを見ることはできない。したがって、他のユーザは、電子デバイス105によって提供されているコンピュータ生成現実環境へのビューポートを、電子デバイス110を介して受信することを要求することができる。
1つ以上の実装形態では、電子デバイス110が電子デバイス105と同じユーザアカウントに登録され、かつ/又は関連付けられている場合、他のユーザは、ビューポートへのアクセスを自動的に許可されてもよい。しかしながら、電子デバイス110が電子デバイス105とは異なるユーザアカウントに登録され、かつ/又は関連付けられている場合、電子デバイス110は、ビューポートにアクセスするための権限の要求を電子デバイス105に送信することができる。電子デバイス105は、例えば、電子デバイス105を使用及び/又は装着するユーザに要求を提示することができ、ユーザは、要求を受諾又は拒否することができる。
電子デバイス105によって生成されているコンピュータ生成現実環境へのビューポートへのアクセスを電子デバイス110が許可されると、電子デバイス110は、物理的環境内の電子デバイス105に対する電子デバイス110上の物理的カメラの位置を判定する(502)。例えば、その位置は、電子デバイス105を用いた超広帯域測距動作及び/又は本明細書に記載の任意の他の好適な測位技術を実行することによって、判定することができる。
電子デバイス110は、その位置を電子デバイス105に送信することができ、かつ/又は電子デバイス105は、好適な測位技術を使用して、電子デバイス110の位置を判定することができる(504)。電子デバイス105は、物理的環境内の電子デバイス110の物理的カメラの位置と一致する位置に、コンピュータ生成現実環境内の仮想カメラを配置することができる。
次いで、電子デバイス110は、電子デバイス105から、仮想カメラによって生成された仮想画像フレームの少なくとも一部分を受信することができる(506)。例えば、仮想カメラは、コンピュータ生成現実環境内の仮想オブジェクトのみをキャプチャすることができ、かつ/又は電子デバイス105は、仮想画像から仮想オブジェクトをセグメント化することができ、仮想オブジェクトのみを電子デバイス110に提供することができる。電子デバイス110はまた、電子デバイス110の物理的カメラによってキャプチャされた画像フレームを受信し(508)、仮想画像の少なくとも一部分を物理的画像フレーム上に重ねることなどによって、仮想画像の少なくとも一部分を物理的画像フレーム上に合成して、コンピュータ生成現実画像フレームを生成する(510)。
次いで、電子デバイス110は、電子デバイス105によって提供されているコンピュータ生成現実環境へのビューポートを提供するために、電子デバイス110のディスプレイ上にコンピュータ生成現実画像フレームを表示する(512)。動作506~512を、各画像フレームについてなど、繰り返して、コンピュータ生成現実環境へのリアルタイムビューポートを提供するコンピュータ生成現実ビデオストリームを表示することができる。1つ以上の実装形態では、電子デバイス105は、電子デバイス110を介してなど、コンピュータ生成現実環境へのビューポートが別のユーザに提供されていることを示す、赤色アイコンなどのインジケーションを、電子デバイス105を使用及び/又は装着するユーザに表示することができる。
図6は、1つ以上の実装形態に係る、コンピュータ生成現実記録のための仮想カメラ及び物理的カメラの位置同期が実装され得る例示的な環境を示す。しかしながら、描写された構成要素の全てが全ての実装形態において使用されなくてもよく、また、1つ以上の実装形態は、図に示されたものに追加の又は異なる構成要素を含んでもよい。本明細書で示された特許請求の範囲の趣旨又は範囲から逸脱することなく、構成要素の構成及びタイプの変形を行うことができる。追加の構成要素、異なる構成要素、又はより少ない構成要素が提供されてもよい。
例示的な環境600では、ユーザは、物理的カメラの視野が電子デバイス104(又は電子デバイス105)を使用及び/又は装着するユーザを包含する位置に、物理的カメラを含む電子デバイス110を配置済みである。次いで、電子デバイス104は、例えば、上述のプロセス300を実行して、電子デバイス104によって提供されているコンピュータ生成現実環境内に仮想カメラを配置することができる。代替的に、及び/又は加えて、ユーザは、コンピュータ生成環境内の仮想カメラの位置を予め構成済みでもよく、プロセス400を使用して、電子デバイス110を配置するための適切な位置を判定済みでもよい。
電子デバイス110の物理的カメラの位置と、電子デバイス104によって提供されているコンピュータ生成環境内の仮想カメラの位置とが同期されると、物理的カメラによってキャプチャされた画像フレームを、仮想カメラによって生成された仮想画像フレームと合成して、1つ以上のコンピュータ生成現実画像フレームを生成することができる。
1つ以上の実装形態では、物理的記録及び仮想記録は、同時に行われなくてもよい。例えば、物理的カメラによる記録を最初に行い、次いで仮想記録を後で追加することができ、又はその逆も同様である。この場合、仮想カメラ及び物理的カメラの位置は、記録のその後の合成を可能にするために、依然として同期される。しかしながら、記録は、非同期的に行われてもよい。
図7は、1つ以上の実装形態に係る、コンピュータ生成現実ビューポートを提供するために仮想カメラ及び物理的カメラの位置同期が実装され得る例示的な環境700を示す。しかしながら、描写された構成要素の全てが全ての実装形態において使用されなくてもよく、また、1つ以上の実装形態は、図に示されたものに追加の又は異なる構成要素を含んでもよい。本明細書で示された特許請求の範囲の趣旨又は範囲から逸脱することなく、構成要素の構成及びタイプの変形を行うことができる。追加の構成要素、異なる構成要素、又はより少ない構成要素が提供されてもよい。
例示的な環境700では、ユーザは、電子デバイス105を使用及び/又は装着して、物理的テーブル704上に、かつ/又はそれに隣接して配置された仮想オブジェクトを含むコンピュータ生成現実環境を経験している。電子デバイス110は、例えば、プロセス500を実行して、電子デバイス105を使用及び/又は装着するユーザが経験しているコンピュータ生成現実環境へのビューポート702を別のユーザに提供することができる。1つ以上の実装形態では、電子デバイス105の画像は、ビューポートを提供するコンピュータ生成現実画像フレームから除去されてもよく、代わりに、ユーザの実際の顔及び/又はアバターの画像に置き換えられてもよい。
1つ以上の実装形態では、電子デバイス105を使用及び/又は装着するユーザは、コンピュータ生成現実環境を経験していてもよく、かつ/又は別のユーザとの共存セッションに参加していてもよい。ユーザは、ユーザの電子デバイス110上の物理的カメラを使用して、口語的に「セルフィー」と呼ばれることがある、自己キャプチャした画像をコンピュータ生成環境内に生成することを望む場合がある。
したがって、電子デバイス105及び/又は電子デバイス110は、プロセス300を実行して、電子デバイス105に対する物理的環境内の電子デバイス110の物理的カメラの位置と一致する位置に、コンピュータ生成環境内の仮想カメラを配置することができる。このようにして、仮想カメラによって生成された仮想画像フレームを、電子デバイス110の物理的カメラによって生成された画像フレームと合成して、複合現実自己キャプチャ画像、又は複合現実セルフィーを生成することができる。
1つ以上の実装形態では、電子デバイス105の画像を、複合現実画像から除去し、電子デバイス105を使用及び/又は装着するユーザの顔及び/又はアバターの画像に置き換えることができる。ユーザが1人以上の他のユーザとの共存セッションに参加しており、かつその複合現実セルフィーをキャプチャしている場合、他のユーザによって使用及び/又は装着されている電子デバイスも、コンピュータ生成現実画像内の他のユーザの顔及び/又はアバターに置き換えることができる。
上述したように、本技術の一態様は、様々なソースから入手可能なデータを収集及び使用することである。本開示は、いくつかの例において、この収集されたデータが、特定の人を一意に特定する個人情報データ、又は特定の人に連絡する若しくはその所在を突き止めるために使用できる個人情報データを含み得ることを考察する。そのような個人情報データとしては、人口統計データ、位置ベースのデータ、電話番号、電子メールアドレス、ソーシャルネットワーク識別子、自宅の住所、ユーザの健康若しくはフィットネスレベルに関するデータ若しくは記録(例えば、バイタルサイン測定値、投薬情報、運動情報)、誕生日、又は任意の他の識別情報若しくは個人情報を挙げることができる。
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。ユーザに利益をもたらす、個人情報データに関する使用もまた、本開示によって想到される。例えば、健康データ及びフィットネスデータは、ユーザの全般的なウェルネスについての洞察を提供するために使用することができ、又は、ウェルネスの目標を追求する技術を使用している個人への、積極的なフィードバックとして使用することもできる。
本開示は、そのような個人情報データの収集、分析、開示、伝送、記憶、又は他の使用に関与するエンティティが、確固たるプライバシーポリシー及び/又はプライバシー慣行を遵守するものとなることを想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。そのようなポリシーは、ユーザによって容易にアクセス可能とするべきであり、データの収集及び/又は使用が変化するにつれて更新されるべきである。ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いては、共有又は販売されるべきではない。更には、そのような収集/共有は、ユーザに告知して同意を得た後に実施されるべきである。その上、そのようなエンティティは、そのような個人情報データへのアクセスを保護及び安全化し、個人情報データへのアクセス権を有する他者が、それらのプライバシーポリシー及び手順を忠実に守ることを保証するための、あらゆる必要な措置を講じることを考慮するべきである。更に、そのようなエンティティは、広く受け入れられているプライバシーポリシー及び慣行に対する自身の遵守を証明するために、サードパーティによる評価を自らが受けることができる。更には、ポリシー及び慣行は、収集及び/又はアクセスされる具体的な個人情報データのタイプに適合されるべきであり、また、管轄権固有の考慮事項を含めた、適用可能な法令及び規格に適合されるべきである。例えば、アメリカ合衆国では、特定の健康データの収集又はそれへのアクセスは、医療保険の相互運用性と説明責任に関する法律(HIPAA)などの、連邦法及び/又は州法によって管理されてもよく、その一方で、他国における健康データは、他の規制及びポリシーの対象となり得るものであり、それに従って対処されるべきである。それゆえ、各国において、異なる個人データのタイプに関して異なるプライバシー慣行が保たれるべきである。
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び/又はソフトウェア要素が提供され得ることを意図している。例えば、本技術は、ユーザが、サービスの登録中又はその後のいつでも、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするように構成することができる。「オプトイン」及び「オプトアウト」の選択肢を提供することに加えて、本開示は、個人情報のアクセス又は使用に関する通知を提供することを意図している。例えば、ユーザの個人情報データにアクセスすることとなるアプリのダウンロード時にユーザに通知され、その後、個人情報データがアプリによってアクセスされる直前に再びユーザに注意してもよい。
更には、本開示の意図は、個人情報データを、非意図的若しくは無許可アクセス又は使用の危険性を最小限に抑える方法で、管理及び処理するべきであるという点である。データの収集を制限し、データがもはや必要とされなくなると削除することにより、リスクを最小化することができる。加えて、かつ、特定の健康関連アプリケーションにおいて適用可能な場合、ユーザのプライバシーを保護するために、データの匿名化を使用することができる。非特定化は、適切な場合には、特定の識別子(例えば、生年月日など)を除去すること、記憶されたデータの量又は特異性を制御すること(例えば、位置データを住所レベルよりも都市レベルで収集すること)、データがどのように記憶されるかを制御すること(例えば、データをユーザ全体にわたって集約すること)及び/又は他の方法によって、容易にすることができる。
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものではあるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することもまた可能であることを想到している。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分が欠如することにより、実施不可能となるものではない。例えば、コンテンツは、ユーザに関連付けられたデバイスにより要求されたコンテンツ、他の非個人情報、若しくは公的に使用可能な情報などの、非個人情報データ又は最小限の量の個人情報に基づいて嗜好を推測することにより、選択してユーザに配信することができる。
図8は、1つ以上の実装形態に係る、本願の技術の態様が実装され得る例示的な電子システム800を示す。電子システム800は、図1に示す電子デバイス105、電子デバイス104、電子デバイス110、電子デバイス112、電子デバイス115、及び/又はサーバ120のうちの1つ以上であってもよく、かつ/又はその一部であってもよい。電子システム800は、様々なタイプのコンピュータ可読媒体、及び様々な他のタイプのコンピュータ可読媒体用のインタフェースを含んでもよい。電子システム800は、バス808、1つ以上の処理ユニット(単数又は複数)812、システムメモリ804(及び/若しくはバッファ)、ROM810、永久記憶デバイス802、入力デバイスインタフェース814、出力デバイスインタフェース806、並びに1つ以上のネットワークインタフェース816、又はそれらのサブセット及び変形を含む。
バス808は、電子システム800の多数の内部デバイスを通信可能に接続する全てのシステム、周辺機器、及びチップセットバスを集合的に表す。1つ以上の実装形態では、バス808は、1つ以上の処理ユニット(単数又は複数)812を、ROM810、システムメモリ804、及び永久記憶デバイス802と通信可能に接続する。1つ以上の処理ユニット(単数又は複数)812は、これらの様々なメモリユニットから、本願の開示のプロセスを実行するために、実行すべき命令及び処理すべきデータを取得する。1つ以上の処理ユニット(単数又は複数)812は、異なる実装形態では、シングルプロセッサ又はマルチコアプロセッサとすることができる。
ROM810は、1つ以上の処理ユニット(単数又は複数)812及び電子システム800の他のモジュールによって必要とされる静的データ及び命令を記憶する。一方、永久記憶デバイス802は、読み出し及び書き込みメモリデバイスであってもよい。永久記憶デバイス802は、たとえ電子システム800がオフであっても、命令及びデータを記憶する不揮発性メモリユニットであってもよい。1つ以上の実装形態では、永久記憶デバイス802として、大容量記憶デバイス(磁気ディスク又は光ディスク、及びそれに対応するディスクドライブなど)を使用することができる。
1つ以上の実装形態では、永久記憶デバイス802として、取り外し可能記憶デバイス(フロッピディスク、フラッシュドライブ、及びそれに対応するディスクドライブなど)を使用することができる。永久記憶デバイス802と同様に、システムメモリ804は、読み出し及び書き込みメモリデバイスであってもよい。しかし、永久記憶デバイス802とは異なり、システムメモリ804は、ランダムアクセスメモリなどの、揮発性の読み出し及び書き込みメモリであってもよい。システムメモリ804は、実行時に1つ以上の処理ユニット(単数又は複数)812が必要とし得る命令及びデータのいずれかを記憶してもよい。1つ以上の実装形態では、本願の開示のプロセスは、システムメモリ804、永久記憶デバイス802、及び/又はROM810に記憶される。1つ以上の処理ユニット(単数又は複数)812は、これらの様々なメモリユニットから、1つ以上の実装形態のプロセスを実行するために、実行すべき命令及び処理すべきデータを取得する。
バス808はまた、入力デバイスインタフェース814及び出力デバイスインタフェース806に接続する。入力デバイスインタフェース814により、ユーザは、電子システム800に対して、情報を伝送し、コマンドを選択することができる。入力デバイスインタフェース814と共に使用することができる入力デバイスとしては、例えば、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を挙げることができる。出力デバイスインタフェース806により、例えば、電子システム800によって生成された画像を表示することができる。出力デバイスインタフェース806と共に使用することができる出力デバイスとしては、例えば、プリンタ、及び液晶ディスプレイ(liquid crystal display、LCD)、発光ダイオード(light emitting diode、LED)ディスプレイ、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、フレキシブルディスプレイ、フラットパネルディスプレイ、ソリッドステートディスプレイ、プロジェクタ、又は情報を出力するための任意の他のデバイスなどの表示デバイスを挙げることができる。1つ以上の実装形態は、タッチスクリーンなどの、入力及び出力デバイスの両方として機能するデバイスを含むことができる。これらの実装形態では、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、触知フィードバックなどの任意の形態の感覚フィードバックであることができ、ユーザからの入力は、音響入力、音声入力、又は触知入力を含む任意の形態で受け取ることができる。
最後に、図8に示すように、バス808はまた、1つ以上のネットワークインタフェース(単数又は複数)816を介して、電子システム800を1つ以上のネットワーク及び/又は1つ以上のネットワークノードに結合する。このようにして、電子システム800は、コンピュータのネットワーク(LAN、広域ネットワーク(wide area network、「WAN」)など)、若しくはイントラネット、又はインターネットなどの複数のネットワークの、ネットワークの一部とすることができる。電子システム800のいずれか又は全ての構成要素は、本願の開示と併せて使用することができる。
上述したこれらの機能は、コンピュータソフトウェア、ファームウェア、又はハードウェアで実装することができる。本技術は、1つ以上のコンピュータプログラム製品を用いて実装することができる。プログラム可能なプロセッサ及びコンピュータをモバイルデバイス内に含めるか、又はモバイルデバイスとしてパッケージ化することができる。プロセス及びロジックの流れは、1つ以上のプログラム可能なプロセッサによって、及び1つ以上のプログラム可能な論理回路によって実行され得る。汎用及び専用のコンピューティングデバイス並びに記憶デバイスが通信ネットワークを通じて相互接続され得る。
いくつかの実装形態は、マイクロプロセッサ、コンピュータプログラム命令を機械可読若しくはコンピュータ可読媒体(コンピュータ可読記憶媒体、機械可読媒体、又は機械可読記憶媒体とも呼ばれる)内に記憶する記憶装置及びメモリなどの、電子構成要素を含む。そのようなコンピュータ可読媒体のいくつかの例には、RAM、ROM、読み出し専用コンパクトディスク(CD-ROM)、追記型コンパクトディスク(CD-R)、書き換え可能コンパクトディスク(CD-RW)、読み出し専用多目的ディスク(例えば、DVD-ROM、2層DVD-ROM)、様々な記録可能/書き換え可能DVD(例えば、DVD-RAM、DVD-RW、DVD+RWなど)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカードなど)、磁気及び/又はソリッドステートハードディスク、読み出し専用記録可能Blu-Ray(登録商標)ディスク、超高密度光ディスク、任意の他の光学又は磁気メディア、及びフロッピディスクが挙げられる。コンピュータ可読媒体は、少なくとも1つの処理ユニットによって実行可能であり、様々な動作を実行するための命令セットを含む、コンピュータプログラムを記憶することができる。コンピュータプログラム又はコンピュータコードの例としては、コンパイラによって作成されるような機械コード、及び、インタープリタを使用して、コンピュータ、電子構成要素、若しくはマイクロプロセッサによって実行される高レベルコードを含むファイルが挙げられる。
上記の説明は、主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサに言及しているが、いくつかの実装形態は、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)などの、1つ以上の集積回路によって実行される。いくつかの実装形態では、そのような集積回路は、その回路自体に記憶されている命令を実行する。
本出願の本明細書及びいずれかの特許請求の範囲で使用されるとき、用語「コンピュータ」、「サーバ」、「プロセッサ」、及び「メモリ」は全て、電子デバイス又は他の技術装置を指す。これらの用語は、人又は人のグループを除外する。本明細書の目的上、用語「表示」又は「表示すること」は、電子デバイス上に表示することを意味する。本出願の本明細書及び任意の請求項において使用されるとき、用語「コンピュータ可読媒体(computer readable medium)」及び「コンピュータ可読媒体(computer readable media)」は、コンピュータによって読み出し可能である形式で情報を記憶する有形の物理的オブジェクトに完全に限定される。これらの用語は、あらゆる無線信号、有線でダウンロードされる信号、及びあらゆる他の一過性の信号を除外する。
ユーザとの相互作用を提供するために、本明細書で説明される主題の実装は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)モニター又はLCD(液晶ディスプレイ)モニターと、ユーザがコンピュータに入力を提供することができる、キーボード、及びポインティングデバイス、例えば、マウス若しくはトラックボールとを有する、コンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を同様に提供することもできる。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、触知フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力、又は触知入力を含む任意の形態で受け取ることができる。加えて、コンピュータは、ユーザが使用しているデバイスに文書を送信し、かつそのデバイスから文書を受信することによって、例えば、ユーザのクライアントデバイス上のウェブブラウザに、そのウェブブラウザから受信された要求に応じて、ウェブページを送信することによって、ユーザと対話することができる。
本明細書で説明される主題の実施形態は、例えば、データサーバとして、バックエンド構成要素を含むコンピューティングシステム、又はミドルウェア構成要素、例えばアプリケーションサーバを含むコンピューティングシステム、又はフロントエンド構成要素、例えば、ユーザが本明細書で説明される主題の実装形態と対話することができるグラフィカルユーザインタフェース若しくはウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、あるいは、1つ以上のそのようなバックエンド構成要素、ミドルウェア構成要素、又はフロントエンド構成要素の、任意の組み合わせを含むコンピューティングシステム内に実装することができる。システムのコンポーネントは、任意の形態で、又はデジタルデータ通信(例えば、通信ネットワーク)の媒体を介して相互接続できる。通信ネットワークの例としては、ローカルエリアネットワーク(local area network、「LAN」)及び広域ネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、並びにピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)が挙げられる。
コンピュータシステムは、クライアント及びサーバを含むことができる。一般的に、クライアント及びサーバは、互いに遠隔にあり、通信ネットワークを介して相互作用することができる。クライアント及びサーバの関係は、各々のコンピュータ上で実行されていてかつ相互にクライアント/サーバ関係を有するコンピュータプログラムを介して生起される。いくつかの実施形態では、サーバは、クライアントデバイスに、(例えば、クライアントデバイスと相互作用するユーザにデータを表示し、ユーザからのユーザ入力を受信する目的のために)データ(例えば、HTMLページ)を送信する。クライアントデバイスで生成されたデータ(例えば、ユーザ対話の結果)は、クライアントデバイスから、サーバで受信することができる。
当業者であれば、本明細書で説明される様々の例示的なブロック、モジュール、エレメント、構成要素、方法、及びアルゴリズムが、電子ハードウェア、コンピュータソフトウェア、又はそれら両方の組み合わせとして実装され得ることを理解するであろう。上記では、ハードウェアとソフトウェアのこの互換性を示すために、様々の例示的なブロック、モジュール、エレメント、構成要素、方法、及びアルゴリズムを、それらの機能性の点から一般的に説明してきた。そのような機能性がハードウェア又はソフトウェアとして実装されるかは、システム全体に課される設計上の制約や個別のアプリケーションに依存する。記載された機能は、各特定のアプリケーションのために様々な方法で実装することができる。様々な構成要素及びブロックは、本願の技術の範囲から全く逸脱することなく、異なるように(例えば、異なる順序で配置されるか、又は異なる方法で分割されて)配置されてもよい。
開示されたプロセスにおけるステップの特定の順序又は階層は、例示的なアプローチの一例であることが理解される。設計の選好に基づいて、プロセス内のステップの特定の順序又は階層は、並び替えられてもよいことが理解される。ステップのうちのいくつかは、同時に実行されてもよい。添付の方法の請求項は、様々なステップの要素をサンプル順に提示し、提示された特定の順序又は階層に限定されることを意味しない。
前述の説明は、本明細書で説明した様々な態様を当業者が実施することを可能にするために提供される。前述の説明は、本願の技術の様々な実施例を提供するものであり、本願の技術は、これらの実施例に限定されない。これらの態様に対する様々な変更は、当業者には容易に明らかであり、本明細書で定義される一般的な原理は、他の態様にも適用することができる。それゆえ、請求項は、本明細書に示される態様への限定を意図しておらず、文言による請求項に合致した全範囲を認められるべきであり、単数形による要素への言及は、特に断りのない限り、「唯一の(one and only one)」を意味することを意図しておらず、むしろ、「1つ以上の(one or more)」を意味することを意図している。特記しない限り、「いくつかの(some)」という用語は、1つ以上のものを指す。男性形(例えば、彼)の代名詞は、女性及び中性の性別(例えば、彼女及びその)を含み、並びにその逆も同様である。もしあれば、見出し及び小見出しは、便宜上のみに使用され、本明細書に記載される発明を限定しない。
本明細書で使用するとき、ウェブサイト(website)という用語は、1つ以上のウェブページ、ウェブ関連コンテンツをホスト又は記憶するために使用される1つ以上のサーバなどを含む、ウェブサイトの任意の態様を含むことができる。したがって、ウェブサイトという用語は、ウェブページ及びサーバという用語と互換的に使用することができる。「~ように構成された(configured to)」、「~ように動作可能な(operable to)」、及び「~ようにプログラムされた(programmed to)」という述語は、対象物の特有の有形又は無形の改変を意味するものではなく、むしろ交換可能に使用されることを意図している。例えば、動作若しくは構成要素を監視及び制御するように構成されたプロセッサとは、プロセッサが、動作を監視及び制御するようにプログラムされていること、又はプロセッサが、動作を監視及び制御するように動作可能であることも意味し得る。同様に、コードを実行するように構成されたプロセッサは、コードを実行するようにプログラムされた、又はコードを実行するように動作可能なプロセッサ、として解釈することができる。
本明細書で使用するとき、自動(automatic)という用語は、ユーザ介入を伴わないコンピュータ又は機械によるパフォーマンス、例えば、コンピュータ若しくは機械又は他の開始機構による述語アクションに応じた命令によるパフォーマンスを含むことができる。単語「例(example)」は、本明細書において、「例又は実例の役割を果たすこと」を意味するために使用される。「実施例」として本明細書において説明される態様又は設計はいずれも、必ずしも、他の態様又は設計よりも好ましい、又は有利なものと解釈されるべきではない。
「態様(aspect)」などの語句は、このような態様が本願の技術に必須であること、又はこのような態様が本願の技術の全ての構成に適用されることを含意しない。一態様に関する開示は、全ての構成、又は1つ以上の構成に適用され得る。一態様は、1つ以上の実施例を提供することができる。「一態様(an aspect)などの語句は1つ以上の態様を指し、その逆も真である。「実施形態(embodiment)」などの語句は、このような実施形態が本願の技術に必須であること、又はこのような実施形態が本願の技術の全ての構成に適用されることを含意しない。一実施形態に関する開示は、全ての実施形態、又は1つ以上の実施形態に適用することができる。一実施形態は、1つ以上の実施例を提供することができる。「実施形態」などの語句は、1つ以上の実施形態を指すことができ、その逆も真である。「構成(configuration)」などの語句は、このような構成が本願の技術に必須であること、又はこのような構成が本願の技術の全ての構成に適用されることを含意しない。一構成(a configuration)に関する開示は、全ての構成、又は1つ以上の構成に適用され得る。一構成は、1つ以上の実施例を提供することができる。「構成」などの語句は、1つ以上の構成を指すことができ、その逆も真である。