概要
仮想アバタは、AR/VR/MR環境内の実際または架空の人物(または創造物または擬人化されたオブジェクト)の仮想表現であってもよい。例えば、その中で2人のAR/VR/MRユーザが相互に相互作用する、テレプレゼンスセッションの間、視認者は、別のユーザのアバタを視認者の環境内で知覚し、それによって、他のユーザの存在の有形感覚を視認者の環境内に作成することができる。アバタはまた、共有仮想環境内において、ユーザが、相互に相互作用し、ともに物事を行うための方法を提供することができる。例えば、オンラインクラスに出席する生徒は、仮想教室内の他の生徒または教師のアバタを知覚し、彼らと相互作用することができる。別の実施例として、AR/VR/MR環境内でゲームをプレーしているユーザは、ゲーム内の他のプレーヤのアバタを視認し、彼らと相互作用してもよい。
開示されるシステムおよび方法の実施形態は、アバタの改良されたアニメーションおよびウェアラブルシステムのユーザとユーザの環境内のアバタとの間のより現実的相互作用を提供し得る。本開示における実施例は、概して、ヒト形状のアバタをアニメーション化することを説明するが、類似技法はまた、動物、架空の生物、オブジェクト等にも適用されることができる。
ウェアラブルデバイスは、高忠実性デジタルアバタを含む、双方向VR/AR/MR環境を提示するためのディスプレイを含むことができる。高忠実性デジタルアバタの作成は、特殊チームによる数週間または数ヶ月にわたる作業を要し得、ヒトモデルの多数の高品質のデジタル化された写真走査を利用し得る。開示される技術の実施形態は、任意のヒト、動物、キャラクタ、またはオブジェクトの高品質または高忠実性アバタ(またはデジタル表現全般)を作成する能力を有する。これを遂行するために、開示されるプロセスの実施形態は、依然として、正確な出力を維持しながら、より高速かつあまりリソース集約的ではない(例えば、ユーザに、専門家モデルが被り得る、同一走査プロセスを行わせることは、実践的ではあり得ない)。
実施例として、ヒト(概して、任意の動物または衣類または髪等の変形可能オブジェクト)のデジタル表現は、骨格と、上層メッシュ(例えばスキン、衣類等であり得る、外側表面を示すため)とを含んでもよい。各ボーンは、ボーンが移動すると、割り当てられた頂点が、ボーンとともに自動的に移動するように、それに割り当てられる、あるメッシュ頂点を有することができる。本初期移動は、「スキンクラスタ」と呼ばれ、概して、大まかな移動を捕捉する。(ボーンおよび骨格は、デジタル構造物であって、必ずしも、人体内の実際の骨に対応するわけではないことに留意されたい。)時として、本明細書では、アバタとも称される、ヒトをモデル化する際の後続ステップが、時として、本明細書では、表面またはメッシュとも称される、スキンのより細かい移動を捕捉するために必要とされ得る。本後続ステップは、時として、ブレンドシェイプとも称され、スキンのより細かい移動を捕捉するために、初期の大まかな移動からの差異を表す。ブレンドシェイプは、デジタル表現が移行する、異なる姿勢の一部または全部に関して取得される必要があり得る。実施例として、第1のブレンドシェイプは、デジタル表現をアニメーション化し、その腕を途中まで屈曲させるために必要とされてもよく、第2のブレンドシェイプは、デジタル表現をアニメーション化し、その腕を完全に屈曲させるために必要とされてもよい。
本開示では、ヒトまたは動物(または他のオブジェクト)のアバタまたはデジタル表現の種々の姿勢のためにブレンドシェイプを効率的に生成するための方法およびシステムが、提供される。実施例として、コンピューティングシステムが、ヒトのデジタル表現内の1つ以上のボーンを所与のボーンに移動させること等によって(例えば、デジタル表現の大まかな移動を捕捉するため)、所与の姿勢におけるアバタのベースメッシュを取得してもよく、所与の姿勢におけるユーザ(またはオブジェクト)を撮影すること等によって、所与の姿勢における標的メッシュを取得してもよい。コンピューティングシステムは、次いで、その所与の姿勢のためのブレンドシェイプを取得するために(例えば、所与の姿勢におけるアニメーション化されたデジタル表現が、所与の姿勢におけるユーザまたはオブジェクトに合致するように、ブレンドシェイプを介して、ベースメッシュを調節する方法を決定するため)、ベースメッシュを標的メッシュに合致させるように試みてもよい。コンピューティングシステムは、ヒートマップ(ベースメッシュと標的メッシュとの間のより高いおよびより低い誤差の領域を示し得る)を生成し、より高い誤差の領域内において、ベースメッシュを標的メッシュに向かって移動させる、剛体変換を適用し、より低い誤差の領域内において、ベースメッシュを標的メッシュに一致させる、非剛体変形を適用することによって、ベースメッシュを標的メッシュに合致させてもよい。これらのプロセスは、満足の行く合致が取得される、またはある他の条件が満たされるまで、反復方式において繰り返されてもよい。別の実施例として、コンピューティングシステムは、ベースメッシュのサブ領域を標的メッシュに合致させ、収束基準が満たされるまで、付加的サブ領域を反復的に合致させてもよい。満足の行く合致が取得された、またはある他の条件が満たされた後、コンピューティングシステムは、所与の姿勢のための1つ以上のブレンドシェイプを生成してもよく、これは、次いで、デジタル表現を精緻化し、所与の姿勢における実世界ユーザ(またはオブジェクト)をより正確に反映させる際に使用されることができる。
故に、第1のメッシュを第2のメッシュ上に合致させるためのシステムおよび方法の種々の実装が、下記に提供されるであろう。
(ウェアラブルシステムの3Dディスプレイの実施例)
ウェアラブルシステム(本明細書では、拡張現実(AR)システムとも称される)は、2Dまたは3D仮想画像をユーザに提示するために構成されることができる。画像は、組み合わせまたは同等物における、静止画像、ビデオのフレーム、またはビデオであってもよい。ウェアラブルシステムの少なくとも一部は、ユーザ相互作用のために、単独で、または組み合わせて、VR、AR、またはMR環境を提示し得る、ウェアラブルデバイス上に実装されることができる。ウェアラブルデバイスは、ARデバイス(ARD)と同義的に使用されることができる。さらに、本開示の目的のために、用語「AR」は、用語「MR」と同義的に使用される。
図1は、人物によって視認される、ある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。図1では、MR場面100が、描写され、MR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム120を特徴とする、実世界公園状設定110が見える。これらのアイテムに加え、MR技術のユーザはまた、実世界プラットフォーム120上に立っているロボット像130と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ140とが「見える」と知覚するが、これらの要素は、実世界には存在しない。
3Dディスプレイが、真の深度感覚、より具体的には、表面深度のシミュレートされた感覚を生成するために、ディスプレイの視野内の点毎に、その仮想深度に対応する遠近調節応答を生成することが望ましくあり得る。ディスプレイ点に対する遠近調節応答が、収束および立体視の両眼深度キューによって決定されるようなその点の仮想深度に対応しない場合、ヒトの眼は、遠近調節衝突を体験し、不安定な結像、有害な眼精疲労、頭痛、および遠近調節情報の不在下では、表面深度のほぼ完全な欠如をもたらし得る。
VR、AR、およびMR体験は、複数の深度平面に対応する画像が視認者に提供されるディスプレイを有する、ディスプレイシステムによって提供されることができる。画像は、深度平面毎に異なってもよく(例えば、場面またはオブジェクトの若干異なる提示を提供する)、視認者の眼によって別個に集束され、それによって、異なる深度平面上に位置する場面に関する異なる画像特徴に合焦させるために要求される眼の遠近調節に基づいて、または合焦からずれている異なる深度平面上の異なる画像特徴を観察することに基づいて、ユーザに深度キューを提供することに役立ち得る。本明細書のいずれかに議論されるように、そのような深度キューは、信用できる深度の知覚を提供する。
図2は、ウェアラブルシステム200の実施例を図示し、これは、AR/VR/MR場面を提供するように構成されることができる。ウェアラブルシステム200はまた、ARシステム200と称され得る。ウェアラブルシステム200は、ディスプレイ220と、ディスプレイ220の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイ220は、ユーザ、装着者、または視認者210によって装着可能である、フレーム230に結合されてもよい。ディスプレイ220は、ユーザ210の眼の正面に位置付けられることができる。ディスプレイ220は、AR/VR/MRコンテンツをユーザに提示するができる。ディスプレイ220は、ユーザの頭部上に装着される、頭部搭載型ディスプレイ(HMD)を備えることができる。
いくつかの実施形態では、スピーカ240が、フレーム230に結合され、ユーザの外耳道に隣接して位置付けられる(いくつかの実施形態では、示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ/成形可能音制御を提供する)。ディスプレイ220は、環境からオーディオストリームを検出し、周囲音を捕捉するために、オーディオセンサ(例えば、マイクロホン)232を含むことができる。いくつかの実施形態では、示されない1つ以上の他のオーディオセンサが、ステレオ音受信を提供するために位置付けられる。ステレオ音受信は、音源の場所を決定するために使用されることができる。ウェアラブルシステム200は、音声または発話認識をオーディオストリームに実施することができる。
ウェアラブルシステム200は、ユーザの周囲の環境内の世界を観察する、外向きに面した結像システム464(図4に示される)を含むことができる。ウェアラブルシステム200はまた、ユーザの眼移動を追跡し得る、内向きに面した結像システム462(図4に示される)を含むことができる。内向きに面した結像システムは、一方の眼の移動または両方の眼の移動のいずれかを追跡することができる。内向きに面した結像システム462は、フレーム230に取り付けられてもよく、内向きに面した結像システムによって入手された画像情報を処理し、例えば、ユーザ210の眼の瞳孔直径または配向、眼の移動、または眼姿勢を決定し得る、処理モジュール260または270と電気通信してもよい。内向きに面した結像システム462は、1つ以上のカメラを含んでもよい。例えば、少なくとも1つのカメラは、各眼を結像するために使用されてもよい。カメラによって入手された画像は、眼毎に、別個に、瞳孔サイズまたは眼姿勢を決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために使用されてもよい。
実施例として、ウェアラブルシステム200は、外向きに面した結像システム464または内向きに面した結像システム462を使用して、ユーザの姿勢の画像を入手することができる。画像は、静止画像、ビデオのフレーム、またはビデオであってもよい。
ディスプレイ220は、有線導線または無線接続等によって、フレーム230に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ210に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載され得る、ローカルデータ処理モジュール260に動作可能に結合されることができる(250)。
ローカル処理およびデータモジュール260は、ハードウェアプロセッサおよび不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、a)画像捕捉デバイス(例えば、内向きに面した結像システムおよび/または外向きに面した結像システム内のカメラ)、オーディオセンサ(例えば、マイクロホン)、慣性測定ユニット(IMU)、加速度計、コンパス、全地球測位システム(GPS)ユニット、無線デバイス、またはジャイロスコープ等の(例えば、フレーム230に動作可能に結合される、または別様にユーザ210に取り付けられ得る)センサから捕捉されるデータ、または、b)場合によっては処理または読出後にディスプレイ220への通過のために、遠隔処理モジュール270または遠隔データリポジトリ280を使用して入手または処理されるデータを含んでもよい。ローカル処理およびデータモジュール260は、これらの遠隔モジュールがローカル処理およびデータモジュール260へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク262または264によって遠隔処理モジュール270または遠隔データリポジトリ280に動作可能に結合されてもよい。加えて、遠隔処理モジュール280および遠隔データリポジトリ280は、相互に動作可能に結合されてもよい。
いくつかの実施形態では、遠隔処理モジュール270は、データまたは画像情報を分析および処理するように構成される、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、遠隔データリポジトリ280は、デジタルデータ記憶設備を備えてもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュールにおいて実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
(ウェアラブルシステムの例示的コンポーネント)
図3は、ウェアラブルシステムの例示的コンポーネントを図式的に図示する。図3は、ウェアラブルシステム200を示し、これは、ディスプレイ220と、フレーム230とを含むことができる。引き伸ばし図202は、ウェアラブルシステム200の種々のコンポーネントを図式的に図示する。ある実装では、図3に図示されるコンポーネントのうちの1つ以上のものは、ディスプレイ220の一部であることができる。種々のコンポーネントは、単独で、または組み合わせて、ウェアラブルシステム200のユーザまたはユーザの環境と関連付けられた種々のデータ(例えば、聴覚的または視覚的データ等)を収集することができる。他の実施形態は、ウェアラブルシステムが使用される用途に応じて、付加的またはより少ないコンポーネントを有してもよいことを理解されたい。なお、図3は、種々のコンポーネントのうちのいくつかと、ウェアラブルシステムを通して収集、分析、および記憶され得る、データのタイプの基本概念とを提供する。
図3は、例示的ウェアラブルシステム200を示し、これは、ディスプレイ220を含むことができる。ディスプレイ220は、ユーザの頭部、またはフレーム230に対応する、筐体またはフレーム230に搭載され得る、ディスプレイレンズ226を備えることができる。ディスプレイレンズ226は、筐体230によって、ユーザの眼302、304の正面に位置付けられる、1つ以上の透明ミラーを備えてもよく、投影された光338を眼302、304の中にバウンスさせ、ビーム成形を促進しながら、また、ローカル環境からの少なくとも一部の光の透過を可能にするように構成されてもよい。投影された光ビーム338の波面は、投影された光の所望の焦点距離と一致するように屈曲または集束されてもよい。図示されるように、2つの広視野マシンビジョンカメラ316(世界カメラとも称される)が、筐体230に結合され、ユーザの周囲の環境を結像することができる。これらのカメラ316は、二重捕捉式可視光/非可視(例えば、赤外線)光カメラであることができる。カメラ316は、図4に示される外向きに面した結像システム464の一部であってもよい。世界カメラ316によって入手された画像は、姿勢プロセッサ336によって処理されることができる。例えば、姿勢プロセッサ336は、1つ以上のオブジェクト認識装置708(例えば、図7に示される)を実装し、ユーザまたはユーザの環境内の別の人物の姿勢を識別する、またはユーザの環境内の物理的オブジェクトを識別することができる。
図3を継続して参照すると、光338を眼302、304の中に投影するように構成される、ディスプレイミラーおよび光学系を伴う、一対の走査式レーザ成形波面(例えば、深度のために)光プロジェクタモジュールが、示される。描写される図はまた、ユーザの眼302、304を追跡し、レンダリングおよびユーザ入力をサポート可能であるように構成される、赤外線光(発光ダイオード「LED」等)とペアリングされる、2つの小型赤外線カメラ324を示す。カメラ324は、図4に示される、内向きに面した結像システム462の一部であってもよい。ウェアラブルシステム200はさらに、センサアセンブリ339を特徴とすることができ、これは、X、Y、およびZ軸加速度計能力および磁気コンパスおよびX、Y、およびZ軸ジャイロスコープ能力を備え、好ましくは、200Hz等の比較的に高周波数でデータを提供し得る。センサアセンブリ339は、図2Aを参照して説明される、IMUの一部であってもよい。描写されるシステム200はまた、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、またはARMプロセッサ(高度縮小命令セット機械)等の頭部姿勢プロセッサ336を備えることができ、これは、リアルタイムまたは近リアルタイムユーザ頭部姿勢を捕捉デバイス316から出力された広視野画像情報から計算するように構成されてもよい。頭部姿勢プロセッサ336は、ハードウェアプロセッサであることができ、図2Aに示されるローカル処理およびデータモジュール260の一部として実装されることができる。
ウェアラブルシステムはまた、1つ以上の深度センサ234を含むことができる。深度センサ234は、環境内のオブジェクトとウェアラブルデバイスとの間の距離を測定するように構成されることができる。深度センサ234は、レーザスキャナ(例えば、ライダ)、超音波深度センサ、または深度感知カメラを含んでもよい。カメラ316が深度感知能力を有する、ある実装では、カメラ316はまた、深度センサ234と見なされ得る。
また、示されるのは、デジタルまたはアナログ処理を実行し、姿勢をセンサアセンブリ339からのジャイロスコープ、コンパス、または加速度計データから導出するように構成される、プロセッサ332である。プロセッサ332は、図2に示される、ローカル処理およびデータモジュール260の一部であってもよい。ウェアラブルシステム200はまた、図3に示されるように、例えば、GPS337(全地球測位システム)等の測位システムを含み、姿勢および測位分析を補助することができる。加えて、GPSはさらに、ユーザの環境についての遠隔ベース(例えば、クラウドベース)の情報を提供してもよい。本情報は、ユーザの環境内のオブジェクトまたは情報を認識するために使用されてもよい。
ウェアラブルシステムは、GPS337および遠隔コンピューティングシステム(例えば、遠隔処理モジュール270、別のユーザのARD等)によって入手されたデータを組み合わせてもよく、これは、ユーザの環境についてのより多くの情報を提供することができる。一実施例として、ウェアラブルシステムは、GPSデータに基づいて、ユーザの場所を決定し、ユーザの場所と関連付けられた仮想オブジェクトを含む、世界マップを読み出すことができる(例えば、遠隔処理モジュール270と通信することによって)。別の実施例として、ウェアラブルシステム200は、世界カメラ316(図4に示される外向きに面した結像システム464の一部であってもよい)を使用して、環境を監視することができる。世界カメラ316によって入手された画像に基づいて、ウェアラブルシステム200は、環境内のオブジェクトを検出することができる(例えば、図7に示される1つ以上のオブジェクト認識装置708を使用することによって)。ウェアラブルシステムはさらに、GPS337によって入手されたデータを使用して、キャラクタを解釈することができる。
ウェアラブルシステム200はまた、レンダリングエンジン334を備えてもよく、これは、世界のユーザのビューのために、ユーザにローカルなレンダリング情報を提供し、スキャナの動作およびユーザの眼の中への結像を促進するように構成されることができる。レンダリングエンジン334は、ハードウェアプロセッサ(例えば、中央処理ユニットまたはグラフィック処理ユニット等)によって実装されてもよい。いくつかの実施形態では、レンダリングエンジンは、ローカル処理およびデータモジュール260の一部である。レンダリングエンジン334は、ウェアラブルシステム200の他のコンポーネントに通信可能に結合されることができる(例えば、有線または無線リンクを介して)。例えば、レンダリングエンジン334は、通信リンク274を介して、眼カメラ324に結合され、通信リンク272を介して、投影サブシステム318(網膜走査ディスプレイに類似する様式において、走査レーザ配列を介して、光をユーザの眼302、304の中に投影することができる)に結合されることができる。レンダリングエンジン34はまた、それぞれ、リンク276および294を介して、例えば、センサ姿勢プロセッサ332および画像姿勢プロセッサ336等の他の処理ユニットと通信することができる。
カメラ324(例えば、小型赤外線カメラ)は、眼姿勢を追跡し、レンダリングおよびユーザ入力をサポートするために利用されてもよい。いくつかの例示的眼姿勢は、ユーザが見ている場所または合焦させている深度(眼の輻輳・開散運動を用いて推定されてもよい)を含んでもよい。GPS337、ジャイロスコープ、コンパス、および加速度計339は、大まかなまたは高速姿勢推定を提供するために利用されてもよい。カメラ316のうちの1つ以上のものは、画像および姿勢を入手することができ、これは、関連付けられたクラウドコンピューティングリソースからのデータと併せて、ローカル環境をマッピングし、ユーザビューを他者と共有するために利用されてもよい。
図3に描写される例示的コンポーネントは、例証目的のためだけのものである。複数のセンサおよび他の機能モジュールが、例証および説明の容易性のために、ともに示される。いくつかの実施形態は、これらのセンサまたはモジュールの1つのみまたはサブセットを含んでもよい。さらに、これらのコンポーネントの場所は、図3に描写される位置に限定されない。いくつかのコンポーネントは、ベルト搭載型コンポーネント、ハンドヘルドコンポーネント、またはヘルメットコンポーネント等、他のコンポーネント内に搭載または格納されてもよい。一実施例として、画像姿勢プロセッサ336、センサ姿勢プロセッサ332、およびレンダリングエンジン334は、ベルトパック内に位置付けられ、超広帯域、Wi−Fi、Bluetooth(登録商標)等の無線通信を介して、または有線通信を介して、ウェアラブルシステムの他のコンポーネントと通信するように構成されてもよい。描写される筐体230は、好ましくは、ユーザによって頭部搭載可能かつ装着可能である。しかしながら、ウェアラブルシステム200のいくつかのコンポーネントは、ユーザの身体の他の部分に装着されてもよい。例えば、スピーカ240が、ユーザの耳の中に挿入され、音をユーザに提供してもよい。
ユーザの眼302、304の中への光338の投影に関して、いくつかの実施形態では、カメラ324は、一般に、眼の焦点の位置または「焦点深度」と一致する、ユーザの眼の中心が幾何学的に輻輳・開散される場所を測定するために利用されてもよい。眼が輻輳・開散する全ての点の3次元表面は、「単視軌跡」と称され得る。焦点距離は、有限数の深度をとり得る、または無限に変動し得る。輻輳・開散運動距離から投影された光は、対象の眼302、304に集束されるように現れる一方、輻輳・開散運動距離の正面または背後の光は、ぼかされる。本開示のウェアラブルデバイスおよび他のディスプレイシステムの実施例はまた、米国特許公開第2016/0270656号(参照することによってその全体として本明細書に組み込まれる)に説明される。
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。オブジェクトの視認者は、輻輳・開散運動(vergence)と遠近調節(accommodation)の組み合わせに起因して、オブジェクトを3次元として知覚し得る。相互に対する2つの眼の輻輳・開散運動移動(例えば、瞳孔が、相互に向かって、またはそこから離れるように移動し、眼の視線を収束させ、オブジェクトを固視するような瞳孔の回転)は、眼の水晶体の合焦(または「遠近調節」)と緊密に関連付けられる。通常条件下、焦点を1つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼のレンズの焦点の変化または眼の遠近調節は、「遠近調節−輻輳・開散運動反射」として知られる関係下、輻輳・開散運動の整合変化を自動的に同一距離に生じさせるであろう。同様に、輻輳・開散運動の変化は、通常条件下、遠近調節の整合変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な整合を提供するディスプレイシステムは、3次元画像のより現実的かつ快適なシミュレーションを形成し得る。
さらに、約0.7ミリメートル未満のビーム直径を伴う、空間的にコヒーレントな光は、眼が合焦している場所にかかわらず、ヒトの眼によって正しく解決されることができる。したがって、適切な焦点深度の錯覚を作成するために、眼の輻輳・開散運動が、カメラ324を用いて追跡されてもよく、レンダリングエンジン334および投影サブシステム318は、単視軌跡上またはそれに近接する全てのオブジェクトを合焦させてレンダリングし、全ての他のオブジェクトを可変程度に焦点をずらしてレンダリングするために利用されてもよい(例えば、意図的に作成されたぼけを使用して)。好ましくは、システム220は、ユーザに、約60フレーム/秒以上のフレームレートでレンダリングする。上記に説明されるように、好ましくは、カメラ324は、眼追跡のために利用されてもよく、ソフトウェアは、輻輳・開散運動幾何学形状だけではなく、また、ユーザ入力としての役割を果たすための焦点場所キューも取り上げるように構成されてもよい。好ましくは、そのようなディスプレイシステムは、昼間または夜間の使用のために好適な明度およびコントラストを用いて構成される。
いくつかの実施形態では、ディスプレイシステムは、好ましくは、視覚的オブジェクト整合のために約20ミリ秒未満の待ち時間、約0.1度未満の角度整合、および約1弧分(arc minute)の分解能を有し、これは、理論によって限定されるわけではないが、ヒトの眼のほぼ限界であると考えられる。ディスプレイシステム220は、位置特定システムと統合されてもよく、これは、GPS要素、光学追跡、コンパス、加速度計、または他のデータソースを伴い、位置および姿勢決定を補助し得る。位置特定情報は、関連世界のユーザのビュー内における正確なレンダリングを促進するために利用されてもよい(例えば、そのような情報は、眼鏡が実世界に対する場所を把握することを促進するであろう)。
いくつかの実施形態では、ウェアラブルシステム200は、ユーザの眼の遠近調節に基づいて、1つ以上の仮想画像を表示するように構成される。ユーザに画像が投影されている場所に合焦させるように強制する、従来の3Dディスプレイアプローチと異なり、いくつかの実施形態では、ウェアラブルシステムは、投影された仮想コンテンツの焦点を自動的に変動させ、ユーザに提示される1つ以上の画像のより快適な視認を可能にするように構成される。例えば、ユーザの眼が、1mの現在の焦点を有する場合、画像は、ユーザの焦点と一致するように投影されてもよい。ユーザが、焦点を3mに偏移させる場合、画像は、新しい焦点と一致するように投影される。したがって、ユーザに所定の焦点を強制するのではなく、いくつかの実施形態のウェアラブルシステム200は、ユーザの眼がより自然な様式において機能することを可能にする。
そのようなウェアラブルシステム200は、仮想現実デバイスに対して典型的に観察される、眼精疲労、頭痛、および他の生理学的症状の発生率を排除または低減させ得る。これを達成するために、ウェアラブルシステム200の種々の実施形態は、1つ以上の可変焦点要素(VFE)を通して、仮想画像を可変焦点距離に投影するように構成される。1つ以上の実施形態では、3D知覚は、画像をユーザから固定された焦点面に投影する、多平面焦点システムを通して達成されてもよい。他の実施形態は、可変平面焦点を採用し、焦点面は、ユーザの焦点の現在の状態と一致するように、z−方向に往復して移動される。
多平面焦点システムおよび可変平面焦点システムの両方において、ウェアラブルシステム200は、眼追跡を採用し、ユーザの眼の輻輳・開散運動を決定し、ユーザの現在の焦点を決定し、仮想画像を決定された焦点に投影してもよい。他の実施形態では、ウェアラブルシステム200は、ファイバスキャナまたは他の光生成源を通して、網膜を横断して、可変焦点の光ビームをラスタパターンで可変に投影する、光変調器を備える。したがって、画像を可変焦点距離に投影するウェアラブルシステム200のディスプレイの能力は、ユーザがオブジェクトを3Dにおいて視認するための遠近調節を容易にするだけではなく、また、米国特許公開第2016/0270656号(参照することによってその全体として本明細書に組み込まれる)にさらに説明されるように、ユーザの眼球異常を補償するために使用されてもよい。いくつかの他の実施形態では、空間光変調器は、種々の光学コンポーネントを通して、画像をユーザに投影してもよい。例えば、以下にさらに説明されるように、空間光変調器は、画像を1つ以上の導波管上に投影してもよく、これは、次いで、画像をユーザに伝送する。
(導波管スタックアセンブリ)
図4は、画像情報をユーザに出力するための導波管スタックの実施例を図示する。ウェアラブルシステム400は、複数の導波管432b、434b、436b、438b、4400bを使用して、3次元知覚を眼/脳に提供するために利用され得る、導波管のスタックまたはスタックされた導波管アセンブリ480を含む。いくつかの実施形態では、ウェアラブルシステム400は、図2のウェアラブルシステム200に対応してもよく、図4Aは、そのウェアラブルシステム200のいくつかの部分をより詳細に概略的に示す。例えば、いくつかの実施形態では、導波管アセンブリ480は、図2のディスプレイ220の中に統合されてもよい。
図4を継続して参照すると、導波管アセンブリ480はまた、複数の特徴458、456、454、452を導波管間に含んでもよい。いくつかの実施形態では、特徴458、456、454、452は、レンズであってもよい。他の実施形態では、特徴458、456、454、452は、レンズではなくてもよい。むしろ、それらは、単に、スペーサであってもよい(例えば、空気間隙を形成するためのクラッディング層または構造)。
導波管432b、434b、436b、438b、440bまたは複数のレンズ458、456、454、452は、種々のレベルの波面曲率または光線発散を用いて、画像情報を眼に送信するように構成されてもよい。各導波管レベルは、特定の深度平面と関連付けられてもよく、その深度平面に対応する画像情報を出力するように構成されてもよい。画像投入デバイス420、422、424、426、428は、それぞれ、眼410に向かって出力するために、各個別の導波管を横断して入射光を分散させるように構成され得る、導波管440b、438b、436b、434b、432bの中に画像情報を投入するために利用されてもよい。光は、画像投入デバイス420、422、424、426、428の出力表面から出射し、導波管440b、438b、436b、434b、432bの対応する入力縁の中に投入される。いくつかの実施形態では、光の単一ビーム(例えば、コリメートされたビーム)が、各導波管の中に投入され、特定の導波管と関連付けられた深度平面に対応する特定の角度(および発散量)において眼410に向かって指向される、クローン化されたコリメートビームの場全体を出力してもよい。
いくつかの実施形態では、画像投入デバイス420、422、424、426、428は、それぞれ、それぞれの対応する導波管440b、438b、436b、434b、432bの中への投入のための画像情報を生成する、離散ディスプレイである。いくつかの他の実施形態では、画像投入デバイス420、422、424、426、428は、例えば、画像情報を1つ以上の光学導管(光ファイバケーブル等)を介して、画像投入デバイス420、422、424、426、428のそれぞれに送り得る、単一の多重化されたディスプレイの出力端である。
コントローラ460が、スタックされた導波管アセンブリ480および画像投入デバイス420、422、424、426、428の動作を制御する。コントローラ460は、導波管440b、438b、436b、434b、432bへの画像情報のタイミングおよび提供を調整する、プログラミング(例えば、非一過性コンピュータ可読媒体内の命令)を含む。いくつかの実施形態では、コントローラ460は、単一一体型デバイスまたは有線または無線通信チャネルによって接続される分散型システムであってもよい。コントローラ460は、いくつかの実施形態では、処理モジュール260または270(図2に図示される)の一部であってもよい。
導波管440b、438b、436b、434b、432bは、全内部反射(TIR)によって各個別の導波管内で光を伝搬するように構成されてもよい。導波管440b、438b、436b、434b、432bはそれぞれ、主要上部表面および主要底部表面およびそれらの主要上部表面と主要底部表面との間に延在する縁を伴う、平面である、または別の形状(例えば、湾曲)を有してもよい。図示される構成では、導波管440b、438b、436b、434b、432bはそれぞれ、光を再指向させ、各個別の導波管内で伝搬させ、導波管から画像情報を眼410に出力することによって、光を導波管から抽出するように構成される、光抽出光学要素440a、438a、436a、434a、432aを含んでもよい。抽出された光はまた、外部結合光と称され得、光抽出光学要素はまた、外部結合光学要素と称され得る。抽出された光のビームは、導波管によって、導波管内で伝搬する光が光再指向要素に衝打する場所において出力される。光抽出光学要素(440a、438a、436a、434a、432a)は、例えば、反射または回折光学特徴であってもよい。説明を容易にし、図面を明確性にするために、導波管440b、438b、436b、434b、432bの底部主要表面に配置されて図示されるが、いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、上部主要表面または底部主要表面に配置されてもよい、または導波管440b、438b、436b、434b、432bの容積内に直接配置されてもよい。いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、透明基板に取り付けられ、導波管440b、438b、436b、434b、432bを形成する、材料の層内に形成されてもよい。いくつかの他の実施形態では、導波管440b、438b、436b、434b、432bは、モノリシック材料部品であってもよく、光抽出光学要素440a、438a、436a、434a、432aは、その材料部品の表面上および/または内部に形成されてもよい。
図4を継続して参照すると、本明細書に議論されるように、各導波管440b、438b、436b、434b、432bは、光を出力し、特定の深度平面に対応する画像を形成するように構成される。例えば、眼の最近傍の導波管432bは、そのような導波管432bの中に投入されるにつれて、コリメートされた光を眼410に送達するように構成されてもよい。コリメートされた光は、光学無限遠焦点面を表し得る。次の上方の導波管434bは、眼410に到達し得る前に、第1のレンズ452(例えば、負のレンズ)を通して通過する、コリメートされた光を送出するように構成されてもよい。第1のレンズ452は、眼/脳が、その次の上方の導波管434bから生じる光を光学無限遠から眼410に向かって内向きにより近い第1の焦点面から生じるように解釈するように、若干の凸面波面曲率を生成するように構成されてもよい。同様に、第3の上方の導波管436bは、眼410に到達する前に、その出力光を第1のレンズ452および第2のレンズ454の両方を通して通過させる。第1および第2のレンズ452および454の組み合わせられた屈折力は、眼/脳が、第3の導波管436bから生じる光が次の上方の導波管434bからの光であったよりも光学無限遠から人物に向かって内向きにさらに近い第2の焦点面から生じるように解釈するように、別の漸増量の波面曲率を生成するように構成されてもよい。
他の導波管層(例えば、導波管438b、440b)およびレンズ(例えば、レンズ456、458)も同様に構成され、スタック内の最高導波管440bを用いて、人物に最も近い焦点面を表す集約焦点力のために、その出力をそれと眼との間のレンズの全てを通して送出する。スタックされた導波管アセンブリ480の他側の世界470から生じる光を視認/解釈するとき、レンズ458、456、454、452のスタックを補償するために、補償レンズ層430が、スタックの上部に配置され、下方のレンズスタック458、456、454、452の集約力を補償してもよい。そのような構成は、利用可能な導波管/レンズ対と同じ数の知覚される焦点面を提供する。導波管の光抽出光学要素およびレンズの集束側面は両方とも、静的であってもよい(例えば、動的ではないまたは電気活性ではない)。いくつかの代替実施形態では、一方または両方とも、電気活性特徴を使用して動的であってもよい。
図4を継続して参照すると、光抽出光学要素440a、438a、436a、434a、432aは、導波管と関連付けられた特定の深度平面のために、光をその個別の導波管から再指向し、かつ本光を適切な量の発散またはコリメーションを伴って出力するように構成されてもよい。その結果、異なる関連付けられた深度平面を有する導波管は、関連付けられた深度平面に応じて、異なる量の発散を伴う光を出力する、異なる構成の光抽出光学要素を有してもよい。いくつかの実施形態では、本明細書に議論されるように、光抽出光学要素440a、438a、436a、434a、432aは、光を具体的角度で出力するように構成され得る、立体特徴または表面特徴であってもよい。例えば、光抽出光学要素440a、438a、436a、434a、432aは、体積ホログラム、表面ホログラム、および/または回折格子であってもよい。回折格子等の光抽出光学要素は、2015年6月25日に公開された米国特許公開第2015/0178939号(参照することによってその全体として本明細書に組み込まれる)に説明される。
いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、回折パターンを形成する回折特徴または「回折光学要素」(本明細書では、「DOE」とも称される)である。好ましくは、DOEは、ビームの光の一部のみがDOEの各交差部で眼410に向かって偏向される一方、残りが、全内部反射を介して、導波管を通して移動し続けるように、比較的に低回折効率を有する。画像情報を搬送する光は、したがって、複数の場所において導波管から出射する、いくつかの関連出射ビームに分割され、その結果、導波管内でバウンスする本特定のコリメートされたビームに関して、眼304に向かって非常に均一なパターンの出射放出となることができる。
いくつかの実施形態では、1つ以上のDOEは、能動的に回折する「オン」状態と有意に回折しない「オフ」状態との間で切替可能であってもよい。例えば、切替可能なDOEは、ポリマー分散液晶の層を備えてもよく、その中で微小液滴は、ホスト媒体中に回折パターンを備え、微小液滴の屈折率は、ホスト材料の屈折率に実質的に整合するように切り替えられることができる(その場合、パターンは、入射光を著しく回折させない)、または微小液滴は、ホスト媒体のものに整合しない屈折率に切り替えられることができる(その場合、パターンは、入射光を能動的に回折させる)。
いくつかの実施形態では、深度平面または被写界深度の数および分布は、視認者の眼の瞳孔サイズまたは配向に基づいて、動的に変動されてもよい。被写界深度は、視認者の瞳孔サイズと反比例して変化してもよい。その結果、視認者の眼の瞳孔のサイズが減少するにつれて、被写界深度は、その平面の場所が眼の焦点深度を越えるため判別不能である1つの平面が、判別可能となり、瞳孔サイズの低減および被写界深度の相当する増加に伴って、より合焦して現れ得るように増加する。同様に、異なる画像を視認者に提示するために使用される、離間される深度平面の数は、減少された瞳孔サイズに伴って減少されてもよい。例えば、視認者は、一方の深度平面から他方の深度平面への眼の遠近調節を調節せずに、第1の深度平面および第2の深度平面の両方の詳細を1つの瞳孔サイズにおいて明確に知覚することが可能ではない場合がある。しかしながら、これらの2つの深度平面は、同時に、遠近調節を変化させずに、別の瞳孔サイズにおいてユーザに合焦するには十分であり得る。
いくつかの実施形態では、ディスプレイシステムは、瞳孔サイズまたは配向の決定に基づいて、または特定の瞳孔サイズまたは配向を示す電気信号の受信に応じて、画像情報を受信する導波管の数を変動させてもよい。例えば、ユーザの眼が、2つの導波管と関連付けられた2つの深度平面間を区別不能である場合、コントローラ460(ローカル処理およびデータモジュール260の実施形態であり得る)は、これらの導波管のうちの1つへの画像情報の提供を停止するように構成またはプログラムされることができる。有利には、これは、システムへの処理負担を低減させ、それによって、システムの応答性を増加させ得る。導波管のためのDOEがオンおよびオフ状態間で切替可能である実施形態では、DOEは、導波管が画像情報を受信するとき、オフ状態に切り替えられてもよい。
いくつかの実施形態では、出射ビームに視認者の眼の直径未満の直径を有するという条件を満たさせることが望ましくあり得る。しかしながら、本条件を満たすことは、視認者の瞳孔のサイズの変動性に照らして、困難であり得る。いくつかの実施形態では、本条件は、視認者の瞳孔のサイズの決定に応答して出射ビームのサイズを変動させることによって、広範囲の瞳孔サイズにわたって満たされる。例えば、瞳孔サイズが減少するにつれて、出射ビームのサイズもまた、減少し得る。いくつかの実施形態では、出射ビームサイズは、可変開口を使用して変動されてもよい。
ウェアラブルシステム400は、世界470の一部を結像する、外向きに面した結像システム464(例えば、デジタルカメラ)を含むことができる。世界470の本部分は、世界カメラの視野(FOV)と称され得、結像システム464は、時として、FOVカメラとも称される。世界カメラのFOVは、視認者210のFOVと同一である場合とそうではない場合があり、これは、視認者210が所与の時間に知覚する、世界470の一部を包含する。例えば、いくつかの状況では、世界カメラのFOVは、ウェアラブルシステム400の視認者210の視野より大きくあり得る。視認者による視認または結像のために利用可能な領域全体は、動眼視野(FOR)と称され得る。FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、ウェアラブルシステム400を囲繞する4πステラジアンの立体角を含んでもよい。他のコンテキストでは、装着者の移動は、より抑制されてもよく、それに応じて、装着者のFORは、より小さい立体角に接し得る。外向きに面した結像システム464から得られた画像は、ユーザによって行われるジェスチャ(例えば、手または指のジェスチャ)を追跡し、ユーザの正面における世界470内のオブジェクトを検出する等のために、使用されることができる。
ウェアラブルシステム400は、オーディオセンサ232、例えば、マイクロホンを含み、周囲音を捕捉することができる。上記に説明されるように、いくつかの実施形態では、1つ以上の他のオーディオセンサが、発話源の場所の決定に有用なステレオ音受信を提供するために位置付けられることができる。オーディオセンサ232は、別の実施例として、指向性マイクロホンを備えることができ、これはまた、オーディオ源が位置する場所に関するそのような有用な指向性情報を提供することができる。ウェアラブルシステム400は、発話源を位置特定する際、または特定の瞬間におけるアクティブ話者を決定するために等、外向きに面した結像システム464およびオーディオセンサ230の両方からの情報を使用することができる。例えば、ウェアラブルシステム400は、単独で、または話者の反射された画像(例えば、鏡に見られるように)と組み合わせて、音声認識を使用して、話者の識別を決定することができる。別の実施例として、ウェアラブルシステム400は、指向性マイクロホンから入手された音に基づいて、環境内の話者の位置を決定することができる。ウェアラブルシステム400は、発話認識アルゴリズムを用いて、話者の位置から生じる音を解析し、発話のコンテンツを決定し、音声認識技法を使用して、話者の識別(例えば、名前または他の人口統計情報)を決定することができる。
ウェアラブルシステム400はまた、眼移動および顔移動等のユーザの移動を観察する、内向きに面した結像システム466(例えば、デジタルカメラ)を含むことができる。内向きに面した結像システム466は、眼410の画像を捕捉し、眼304の瞳孔のサイズおよび/または配向を決定するために使用されてもよい。内向きに面した結像システム466は、ユーザが見ている方向(例えば、眼姿勢)を決定する際に使用するため、またはユーザのバイオメトリック識別のため(例えば、虹彩識別を介して)、画像を得るために使用されることができる。いくつかの実施形態では、少なくとも1つのカメラが、眼毎に、独立して、各眼の瞳孔サイズまたは眼姿勢を別個に決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために利用されてもよい。いくつかの他の実施形態では、単一眼410のみの瞳孔直径または配向(例えば、対の眼あたり単一カメラのみを使用して)が、決定され、ユーザの両眼に関して類似すると仮定される。内向きに面した結像システム466によって得られる画像は、ユーザに提示されるべきオーディオまたは視覚的コンテンツを決定するためにウェアラブルシステム400によって使用され得る、ユーザの眼姿勢またはムードを決定するために分析されてもよい。ウェアラブルシステム400はまた、IMU、加速度計、ジャイロスコープ等のセンサを使用して、頭部姿勢(例えば、頭部位置または頭部配向)を決定してもよい。
ウェアラブルシステム400は、ユーザが、コマンドをコントローラ460に入力し、ウェアラブルシステム400と相互作用し得る、ユーザ入力デバイス466を含むことができる。例えば、ユーザ入力デバイス466は、トラックパッド、タッチスクリーン、ジョイスティック、多自由度(DOF)コントローラ、容量感知デバイス、ゲームコントローラ、キーボード、マウス、指向性パッド(Dパッド)、ワンド、触知デバイス、トーテム(例えば、仮想ユーザ入力デバイスとして機能する)等を含むことができる。マルチDOFコントローラは、コントローラの一部または全部の可能性として考えられる平行移動(例えば、左/右、前方/後方、または上/下)または回転(例えば、ヨー、ピッチ、またはロール)におけるユーザ入力を感知することができる。平行移動をサポートする、マルチDOFコントローラは、3DOFと称され得る一方、平行移動および回転をサポートする、マルチDOFコントローラは、6DOFと称され得る。ある場合には、ユーザは、指(例えば、親指)を使用して、タッチセンサ式入力デバイスを押下またはその上でスワイプし、入力をウェアラブルシステム400に提供してもよい(例えば、ユーザ入力をウェアラブルシステム400によって提供されるユーザインターフェースに提供するために)。ユーザ入力デバイス466は、ウェアラブルシステム400の使用の間、ユーザの手によって保持されてもよい。ユーザ入力デバイス466は、ウェアラブルシステム400と有線または無線通信することができる。
(ウェアラブルシステムの他のコンポーネント)
多くの実装では、ウェアラブルシステムは、上記に説明されるウェアラブルシステムのコンポーネントに加えて、またはその代替として、他のコンポーネントを含んでもよい。ウェアラブルシステムは、例えば、1つ以上の触知デバイスまたはコンポーネントを含んでもよい。触知デバイスまたはコンポーネントは、触覚をユーザに提供するように動作可能であってもよい。例えば、触知デバイスまたはコンポーネントは、仮想コンテンツ(例えば、仮想オブジェクト、仮想ツール、他の仮想構造)に触れると、圧力またはテクスチャの触覚を提供してもよい。触覚は、仮想オブジェクトが表す物理的オブジェクトの感覚を再現してもよい、または仮想コンテンツが表す想像上のオブジェクトまたはキャラクタ(例えば、ドラゴン)の感覚を再現してもよい。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって装着されてもよい(例えば、ユーザウェアラブルグローブ)。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって保持されてもよい。
ウェアラブルシステムは、例えば、ユーザによって操作可能であって、ウェアラブルシステムへの入力またはそれとの相互作用を可能にする、1つ以上の物理的オブジェクトを含んでもよい。これらの物理的オブジェクトは、本明細書では、トーテムと称され得る。いくつかのトーテムは、例えば、金属またはプラスチック片、壁、テーブルの表面等、無生物オブジェクトの形態をとってもよい。ある実装では、トーテムは、実際には、任意の物理的入力構造(例えば、キー、トリガ、ジョイスティック、トラックボール、ロッカスイッチ)を有していなくてもよい。代わりに、トーテムは、単に、物理的表面を提供してもよく、ウェアラブルシステムは、ユーザにトーテムの1つ以上の表面上にあるように見えるように、ユーザインターフェースをレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムの1つ以上の表面上に常駐するように見えるように、コンピュータキーボードおよびトラックパッドの画像をレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムとしての役割を果たし得る、アルミニウムの薄い長方形プレートの表面上に見えるように、仮想コンピュータキーボードおよび仮想トラックパッドをレンダリングしてもよい。長方形プレート自体は、任意の物理的キーまたはトラックパッドまたはセンサを有していない。しかしながら、ウェアラブルシステムは、仮想キーボードまたは仮想トラックパッドを介して行われた選択または入力として、長方形プレートを用いたユーザ操作または相互作用またはタッチを検出し得る。ユーザ入力デバイス466(図4に示される)は、トラックパッド、タッチパッド、トリガ、ジョイスティック、トラックボール、ロッカまたは仮想スイッチ、マウス、キーボード、多自由度コントローラ、または別の物理的入力デバイスを含み得る、トーテムの実施形態であってもよい。ユーザは、単独で、または姿勢と組み合わせて、トーテムを使用し、ウェアラブルシステムまたは他のユーザと相互作用してもよい。
本開示のウェアラブルデバイス、HMD、およびディスプレイシステムと使用可能な触知デバイスおよびトーテムの実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明される。
(ウェアラブルシステムとのユーザ相互作用の例示的プロセス)
図5は、仮想ユーザインターフェースと相互作用するための方法500の実施例のプロセスフロー図である。方法500は、本明細書に説明されるウェアラブルシステムによって実施されてもよい。方法500の実施形態は、ウェアラブルシステムによって使用され、ウェアラブルシステムのFOV内の人物またはドキュメントを検出することができる。
ブロック510では、ウェアラブルシステムは、特定のUIを識別してもよい。UIのタイプは、ユーザによって事前決定されてもよい。ウェアラブルシステムは、ユーザ入力(例えば、ジェスチャ、視覚的データ、オーディオデータ、感覚データ、直接コマンド等)に基づいて、特定のUIが取り込まれる必要があることを識別してもよい。UIは、システムの装着者がドキュメントを装着者に提示するユーザを観察している(例えば、旅行者検問所において)、セキュリティシナリオに特有であることができる。ブロック520では、ウェアラブルシステムは、仮想UIのためのデータを生成してもよい。例えば、範囲、一般的構造、UIの形状等と関連付けられたデータが、生成されてもよい。加えて、ウェアラブルシステムは、ウェアラブルシステムがUIをユーザの物理的場所に関連して表示し得るように、ユーザの物理的場所のマップ座標を決定してもよい。例えば、UIが、身体中心である場合、ウェアラブルシステムは、リングUIがユーザの周囲に表示され得る、または平面UIが壁上またはユーザの正面に表示され得るように、ユーザの物理的立ち位置の座標、頭部姿勢、または眼姿勢を決定してもよい。本明細書に説明されるセキュリティコンテキストでは、UIは、装着者が、旅行者および旅行者のドキュメントを見ながら、UIを容易に視認し得るように、UIがドキュメントをシステムの装着者に提示している旅行者を囲繞しているかのように表示されてもよい。UIが、手中心である場合、ユーザの手のマップ座標が、決定されてもよい。これらのマップ点は、FOVカメラ、感覚入力を通して受信されたデータ、または任意の他のタイプの収集されたデータを通して、導出されてもよい。
ブロック530では、ウェアラブルシステムは、データをクラウドからディスプレイに送信してもよい、またはデータは、ローカルデータベースからディスプレイコンポーネントに送信されてもよい。ブロック540では、UIは、送信されたデータに基づいて、ユーザに表示される。例えば、ライトフィールドディスプレイは、仮想UIをユーザの眼の一方または両方の中に投影することができる。いったん仮想UIが作成されると、ウェアラブルシステムは、単に、ブロック550において、より多くの仮想コンテンツを仮想UI上に生成するためのユーザからのコマンドを待機してもよい。例えば、UIは、ユーザの身体またはユーザの環境内の人物(例えば、旅行者)の身体の周囲の身体中心リングであってもよい。ウェアラブルシステムは、次いで、コマンド(ジェスチャ、頭部または眼移動、音声コマンド、ユーザ入力デバイスからの入力等)を待機してもよく、それが認識される場合(ブロック560)、コマンドと関連付けられた仮想コンテンツは、ユーザに表示されてもよい(ブロック570)。
(複合現実におけるアバタレンダリングの実施例)
ウェアラブルシステムは、高被写界深度をレンダリングされたライトフィールド内で達成するために、種々のマッピング関連技法を採用してもよい。仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、仮想オブジェクトを実世界に関連して正確に描くことが有利である。この目的を達成するために、ウェアラブルシステムのユーザから捕捉されたFOV画像が、実世界の種々の点および特徴についての情報を伝達する新しい写真を含むことによって、世界モデルに追加されることができる。例えば、ウェアラブルシステムは、マップ点(2D点または3D点等)のセットを収集し、新しいマップ点を見出し、世界モデルのより正確なバージョンをレンダリングすることができる。第1のユーザの世界モデルは、第2のユーザが第1のユーザを囲繞する世界を体験し得るように、(例えば、クラウドネットワーク等のネットワークを経由して)第2のユーザに通信されることができる。
図6Aは、ウェアラブルシステムの別の実施例のブロック図であって、これは、複合現実環境内へのアバタ処理およびレンダリングシステム690を備えることができる。ウェアラブルシステム600は、図2に示されるウェアラブルシステム200の一部であってもよい。本実施例では、ウェアラブルシステム600は、マップ620を備えることができ、これは、マップデータベース710(図7に示される)内のデータの少なくとも一部を含んでもよい。マップは、部分的に、ウェアラブルシステム上にローカルで常駐してもよく、部分的に、有線または無線ネットワークによってアクセス可能なネットワーク化された記憶場所(例えば、クラウドシステム内)に常駐してもよい。姿勢プロセス610は、ウェアラブルコンピューティングアーキテクチャ(例えば、処理モジュール260またはコントローラ460)上で実行され、マップ620からのデータを利用して、ウェアラブルコンピューティングハードウェアまたはユーザの位置および配向を決定してもよい。姿勢データは、ユーザが、システムを体験し、世界内で動作するにつれてオンザフライで収集されたデータから、算出されてもよい。データは、画像、センサ(慣性測定ユニット等、これは、概して、加速度計と、ジャイロスコープコンポーネントとを備える)からのデータ、および実または仮想環境内のオブジェクトと関連する表面情報を含んでもよい。
疎点表現は、同時位置特定およびマッピング(例えば、入力が画像/視覚専用である構成を指す、SLAMまたはvSLAM)プロセスの出力であってもよい。本システムは、種々のコンポーネントが存在する世界内の場所だけではなく、世界が成る内容も見出すように構成されることができる。姿勢は、マップの取込およびマップからのデータの使用を含む、多くの目標を達成する、構築ブロックであり得る。
一実施形態では、疎点位置は、それだけでは完全に適正ではあり得ず、さらなる情報が、多焦点AR、VR、またはMR体験を生産するために必要とされ得る。概して、深度マップ情報を指す、稠密表現が、少なくとも部分的に、本間隙を充填するために利用されてもよい。そのような情報は、ステレオ640と称される、プロセスから算出されてもよく、深度情報は、三角測量または飛行時間感知等の技法を使用して決定される。画像情報およびアクティブパターン(アクティブプロジェクタを使用して作成された赤外線パターン等)、画像カメラから入手された画像、または手のジェスチャ/トーテム650が、ステレオプロセス640への入力としての役割を果たし得る。有意な量の深度マップ情報が、ともに融合され得、そのうちの一部は、表面表現とともに要約され得る。例えば、数学的に定義可能な表面は、効率的(例えば、大点群と比較して)であって、ゲームエンジンのような他の処理デバイスへの理解しやすい入力であり得る。したがって、ステレオプロセス(例えば、深度マップ)640の出力は、融合プロセス630において組み合わせられてもよい。姿勢610も同様に、本融合プロセス630への入力であってもよく、融合630の出力は、マップ取込プロセス620への入力となる。サブ表面は、トポグラフィマッピングにおけるように、相互に接続し、より大きい表面を形成し得、マップは、点および表面の大規模ハイブリッドとなる。
複合現実プロセス660における種々の側面を解決するために、種々の入力が、利用されてもよい。例えば、図6Aに描写される実施形態では、ゲームパラメータが、入力され、システムのユーザが、種々の場所における1匹以上のモンスター、種々の条件下で死にかけている、または逃げているモンスター(ユーザがモンスターを射撃する場合等)、種々の場所における壁または他のオブジェクト、および同等物を伴った状態で、モンスターバトルゲームをプレーしていることを決定し得る。世界マップは、オブジェクトの場所に関する情報またはオブジェクトの意味論情報(例えば、オブジェクトが、平坦または丸いかどうか、水平または垂直であるか、テーブルまたはランプであるかどうか等の分類)を含んでもよく、世界マップは、複合現実への別の有益な入力であり得る。世界に対する姿勢も同様に、入力となり、ほぼあらゆる双方向システムに対して重要な役割を担う。
ユーザからの制御または入力は、ウェアラブルシステム600への別の入力である。本明細書に説明されるように、ユーザ入力は、視覚的入力、ジェスチャ、トーテム、オーディオ入力、感覚入力等を含むことができる。動き回る、またはゲームをプレーするために、例えば、ユーザは、自らが所望する内容に関して、ウェアラブルシステム600に命令する必要があり得る。単に、自らを空間内で移動させる以外にも利用され得る、種々の形態のユーザ制御が存在する。一実施形態では、トーテム(例えば、ユーザ入力デバイス)または玩具銃等のオブジェクトが、ユーザによって保持され、システムによって追跡されてもよい。本システムは、好ましくは、ユーザがアイテムを保持していることを把握し、ユーザがアイテムと行っている相互作用の種類を理解するように構成されるであろう(例えば、トーテムまたはオブジェクトが、銃である場合、本システムは、場所および配向と、ユーザが、トリガまたは他の感知されるボタンまたは要素(アクティビティがカメラのいずれかの視野内にないときでも、生じている内容を決定することを補助し得る、IMU等のセンサを装備し得る)をクリックしているかどうかとを理解するように構成されてもよい)。
手のジェスチャの追跡または認識もまた、入力情報を提供し得る。ウェアラブルシステム600は、ボタン押下、左または右、停止、握持、保持のジェスチャ等に関して、手のジェスチャを追跡および解釈するように構成されてもよい。例えば、1つの構成では、ユーザは、非ゲーム用環境において電子メールまたはカレンダをフリップする、または「フィストバンプ」を別の人物またはプレーヤと行うことを所望し得る。ウェアラブルシステム600は、動的である場合とそうではない場合がある、最小量の手のジェスチャを活用するように構成されてもよい。例えば、ジェスチャは、停止のために手を開く、OKのためのサムズアップ、非OKのためのサムズダウン、または指向性コマンドのための右または左または上/下への手のフリップのような単純静的ジェスチャであってもよい。
眼追跡は、別の入力である(例えば、ユーザが見ている場所を追跡し、ディスプレイ技術を制御し、具体的深度または範囲にレンダリングする)。一実施形態では、眼の輻輳・開散運動が、三角測量を使用して、決定されてもよく、次いで、その特定の人物に関して開発された輻輳・開散運動/遠近調節モデルを使用して、遠近調節が、決定されてもよい。眼追跡は、眼カメラによって実施され、眼視線(例えば、片眼または両眼の方向または配向)を決定することができる。他の技法は、例えば、眼の近傍に設置された電極による電位の測定(例えば、電気眼球図記録)等の眼追跡のために使用されることができる。
発話追跡は、単独で、または他の入力(例えば、トーテム追跡、眼追跡、ジェスチャ追跡等)と組み合わせて使用され得る、別の入力であり得る。発話追跡は、単独で、または組み合わせて、発話認識、音声認識を含んでもよい。システム600は、オーディオストリームを環境から受信する、オーディオセンサ(例えば、マイクロホン)を含むことができる。システム600は、発話している人物(例えば、発話が、ARDの装着者または別の人物または音声(例えば、環境内のラウドスピーカによって伝送される記録された音声)からのものであるかどうか)を決定するための音声認識技術と、話されている内容を決定するための発話認識技術とを組み込むことができる。ローカルデータおよび処理モジュール260または遠隔処理モジュール270は、例えば、隠れマルコフモデル、動的時間伸縮法(DTW)ベースの発話認識、ニューラルネットワーク、ディープフィードフォワードおよび再帰ニューラルネットワーク等の深層学習アルゴリズム、エンドツーエンド自動発話認識、機械学習アルゴリズム(図7を参照して説明される)、または音響モデル化または言語モデル化を使用する、他のアルゴリズム等の種々の発話認識アルゴリズムを適用することによって、マイクロホンからのオーディオデータ(または、例えば、ユーザによって鑑賞されているビデオストリーム等の別のストリーム内のオーディオデータ)を処理し、発話のコンテンツを識別することができる。
ローカルデータおよび処理モジュール260または遠隔処理モジュール270はまた、音声認識アルゴリズムを適用することができ、これは、話者が、ウェアラブルシステム600のユーザ210またはユーザが会話している別の人物であるかどうか等、話者の識別を識別することができる。いくつかの例示的音声認識アルゴリズムは、周波数推定、隠れマルコフモデル、ガウス混合物モデル、パターンマッチングアルゴリズム、ニューラルネットワーク、行列表現、ベクトル量子化、話者ダイアライゼーション、決定ツリー、および動的時間伸縮法(DTW)技法を含むことができる。音声認識技法はまた、コホートモデルおよび世界モデル等のアンチ話者技法を含むことができる。スペクトル特徴が、話者特性を表す際に使用されてもよい。ローカルデータおよび処理モジュールまたは遠隔データ処理モジュール270は、図7を参照して説明される、種々の機械学習アルゴリズムを使用して、音声認識を実施することができる。
ウェアラブルシステムの実装は、UIを介したこれらのユーザ制御または入力を使用することができる。UI要素(例えば、制御、ポップアップウィンドウ、吹き出し、データエントリフィールド等)は、例えば、情報、例えば、オブジェクトのグラフィックまたは意味論情報のディスプレイを閉じるために使用されることができる。
カメラシステムに関して、図6Aに示される例示的ウェアラブルシステム600は、3つの対のカメラ、すなわち、ユーザの顔の側面に配列される、一対の相対的広FOVまたは受動SLAMカメラと、ステレオ結像プロセス640をハンドリングし、また、ユーザの顔の正面における手のジェスチャおよびトーテム/オブジェクト追跡を捕捉するために、ユーザの顔の正面に配向される、異なる対のカメラとを含むことができる。FOVカメラおよびステレオプロセス640のための対のカメラは、外向きに面した結像システム464(図4に示される)の一部であってもよい。ウェアラブルシステム600は、眼ベクトルおよび他の情報を三角測量するために、ユーザの眼に向かって配向される、眼追跡カメラ(図4に示される内向きに面した結像システム462の一部であってもよい)を含むことができる。ウェアラブルシステム600はまた、1つ以上のテクスチャ加工された光プロジェクタ(赤外線(IR)プロジェクタ等)を備え、テクスチャを場面の中に投入してもよい。
ウェアラブルシステム600は、アバタ処理およびレンダリングシステム690を備えることができる。アバタ処理およびレンダリングシステム690は、コンテキスト情報に基づいて、アバタを生成、更新、アニメーション化、およびレンダリングするように構成されることができる。アバタ処理およびレンダリングシステム690の一部または全部は、単独で、または組み合わせて、ローカル処理およびデータモジュール260または遠隔処理モジュール262、264の一部として実装されることができる。種々の実施形態では、複数のアバタ処理およびレンダリングシステム690(例えば、異なるウェアラブルデバイス上に実装されるように)が、仮想アバタ670をレンダリングするために使用されることができる。例えば、第1のユーザのウェアラブルデバイスは、第1のユーザの意図を決定するために使用されてもよい一方、第2のユーザのウェアラブルデバイスは、アバタの特性を決定し、第1のユーザのウェアラブルデバイスから受信された意図に基づいて、第1のユーザのアバタをレンダリングすることができる。第1のユーザのウェアラブルデバイスおよび第2のユーザのウェアラブルデバイス(または他のそのようなウェアラブルデバイス)は、例えば、図9Aおよび9Bを参照して説明されるであろうように、ネットワークを介して、通信することができる。
図6Bは、例示的アバタ処理およびレンダリングシステム690を図示する。アバタ処理およびレンダリングシステム690は、図11−14Cを参照して説明されるメッシュ転写技法を実装することができる。例示的アバタ処理およびレンダリングシステム690は、単独で、または組み合わせて、3Dモデル処理システム680と、コンテキスト情報分析システム688と、アバタ自動スケーラ692と、意図マッピングシステム694と、解剖学的構造調節システム698と、刺激応答システム696とを備えることができる。システム690は、アバタ処理およびレンダリングのための機能性を図示するように意図され、限定することを意図するものではない。例えば、ある実装では、これらのシステムのうちの1つ以上のものは、別のシステムの一部であってもよい。例えば、コンテキスト情報分析システム688の一部は、個々に、または組み合わせて、アバタ自動スケーラ692、意図マッピングシステム694、刺激応答システム696、または解剖学的構造調節システム698の一部であってもよい。
コンテキスト情報分析システム688は、図2および3を参照して説明される、1つ以上のデバイスセンサに基づいて、環境およびオブジェクト情報を決定するように構成されることができる。例えば、コンテキスト情報分析システム688は、ユーザまたはユーザのアバタの視認者の外向きに面した結像システム464によって入手された画像を使用して、環境およびユーザの環境のオブジェクト(物理的または仮想オブジェクトを含む)またはその中にユーザのアバタがレンダリングされる環境を分析することができる。コンテキスト情報分析システム688は、単独で、または場所データまたは世界マップ(例えば、マップ620、710、910)から入手されたデータと組み合わせて、そのような画像を分析し、環境内のオブジェクトの場所およびレイアウトを決定することができる。コンテキスト情報分析システム688はまた、仮想アバタ670を現実的にアニメーション化するために、ユーザまたはヒト全般の生物学的特徴にアクセスすることができる。例えば、コンテキスト情報分析システム688は、違和感曲線を生成することができ、これは、ユーザのアバタの身体の一部(例えば、頭部)がユーザの身体の他の部分に対して違和感のある(または非現実的)位置にないように(例えば、アバタの頭部は、270度方向転換されない)、アバタに適用されることができる。ある実装では、1つ以上のオブジェクト認識装置708(図7に示される)は、コンテキスト情報分析システム688の一部として実装されてもよい。
アバタ自動スケーラ692、意図マッピングシステム694、および刺激応答システム696、および解剖学的構造調節システム698は、コンテキスト情報に基づいて、アバタの特性を決定するように構成されることができる。アバタのいくつかの例示的特性は、サイズ、外観、位置、配向、移動、姿勢、表現等を含むことができる。アバタ自動スケーラ692は、ユーザがアバタを不快な姿勢で見る必要がないように、アバタを自動的にスケーリングするように構成されることができる。例えば、アバタ自動スケーラ692は、ユーザが、それぞれ、アバタを見下ろす、またはアバタを見上げる必要がないように、アバタのサイズを増加または減少させ、アバタをユーザの眼の高さに持って来ることができる。意図マッピングシステム694は、アバタがその中にレンダリングされる環境に基づいて、ユーザの相互作用の意図を決定し、(正確なユーザ相互作用ではなく)意図をアバタにマッピングすることができる。例えば、第1のユーザの意図は、テレプレゼンスセッションにおいて第2のユーザと通信することであり得る(例えば、図9B参照)。典型的には、2人が、通信するとき、相互に向かい合う。第1のユーザのウェアラブルシステムの意図マッピングシステム694は、テレプレゼンスセッションの間に存在するそのような対面意図を決定することができ、第1のユーザのウェアラブルシステムに、第2のユーザのアバタを第1のユーザに向かってレンダリングさせることができる。第2のユーザが、物理的に方向転換しようとする場合、第2のユーザのアバタを方向転換された位置にレンダリングする代わりに(第2のユーザのアバタの背面を第1のユーザに対してレンダリングさせるであろう)、第1のユーザの意図マッピングシステム694は、第2のアバタの顔を第1のユーザに対してレンダリングし続けることができ、これは、テレプレゼンスセッションの推測される意図(例えば、本実施例では、対面意図)である。
刺激応答システム696は、環境内の関心オブジェクトを識別し、関心オブジェクトに対するアバタの応答を決定することができる。例えば、刺激応答システム696は、アバタの環境内の音源を識別し、音源を見るようにアバタを自動的に方向転換させることができる。刺激応答システム696はまた、閾値終了条件を決定することができる。例えば、刺激応答システム696は、音源が消失した後またはある時間周期が経過した後、アバタをそのオリジナル姿勢に戻させることができる。
解剖学的構造調節システム698は、生物学的特徴に基づいて、ユーザの姿勢を調節するように構成されることができる。例えば、解剖学的構造調節システム698は、違和感曲線に基づいて、ユーザの頭部とユーザの胴体との間またはユーザの上半身と下半身との間の相対的位置を調節するように構成されることができる。
3Dモデル処理システム680は、仮想アバタ670をアニメーション化し、ディスプレイ220にレンダリングさせるように構成されることができる。3Dモデル処理システム680は、仮想キャラクタ処理システム682と、移動処理システム684とを含むことができる。仮想キャラクタ処理システム682は、ユーザの3Dモデルを生成および更新するように構成されることができる(仮想アバタを作成およびアニメーション化するため)。移動処理システム684は、例えば、アバタの姿勢を変化させることによって、アバタをユーザの環境内で移動させることによって、またはアバタの顔の表情をアニメーション化することによって等、アバタをアニメーション化するように構成されることができる。本明細書にさらに説明されるであろうように、仮想アバタは、リギング技法を使用して、アニメーション化されることができる。いくつかの実施形態では、アバタは、2つの部分、すなわち、仮想アバタの外向き外観をレンダリングするために使用される表面表現(例えば、変形可能メッシュ)と、メッシュをアニメーション化するために相互接続された関節の階層セット(例えば、コア骨格)とにおいて表される。いくつかの実装では、仮想キャラクタ処理システム682は、表面表現を編集または生成するように構成されることができる一方、移動処理システム684は、アバタを移動させる、メッシュを変形させる等によって、アバタをアニメーション化するために使用されることができる。例えば、いくつかの実装では、移動処理システム684は、図11A−14Cを参照して下記に説明されるベースメッシュと標的メッシュの合致を実施する。
ユーザの環境をマッピングする実施例
図7は、MR環境700の実施例のブロック図である。MR環境700は、入力(例えば、ユーザのウェアラブルシステムからの視覚的入力702、室内カメラ等の定常入力704、種々のセンサからの感覚入力706、ユーザ入力デバイス466からのジェスチャ、トーテム、眼追跡、ユーザ入力等)を、1つ以上のユーザウェアラブルシステム(例えば、ウェアラブルシステム200またはディスプレイシステム220)または定常室内システム(例えば、室内カメラ等)から受信するように構成されてもよい。ウェアラブルシステムは、種々のセンサ(例えば、加速度計、ジャイロスコープ、温度センサ、移動センサ、深度センサ、GPSセンサ、内向きに面した結像システム、外向きに面した結像システム等)を使用して、ユーザの環境の場所および種々の他の属性を決定することができる。本情報はさらに、異なる視点からの画像または種々のキューを提供し得る、部屋内の定常カメラからの情報で補完されてもよい。カメラ(室内カメラおよび/または外向きに面した結像システムのカメラ等)によって入手された画像データは、マッピング点のセットに低減されてもよい。
1つ以上のオブジェクト認識装置708が、受信されたデータ(例えば、点の集合)を通してクローリングし、点を認識またはマッピングし、画像をタグ付けし、マップデータベース710を用いて、意味論情報をオブジェクトに結び付けることができる。マップデータベース710は、経時的に収集された種々の点およびその対応するオブジェクトを備えてもよい。種々のデバイスおよびマップデータベースは、ネットワーク(例えば、LAN、WAN等)を通して相互に接続され、クラウドにアクセスすることができる。
本情報およびマップデータベース内の点集合に基づいて、オブジェクト認識装置708a−708nは、環境内のオブジェクトを認識してもよい。例えば、オブジェクト認識装置は、顔、人物、窓、壁、ユーザ入力デバイス、テレビ、ドキュメント(例えば、本明細書におけるセキュリティ実施例において説明されるような旅券、運転免許証、パスポート)、ユーザの環境内の他のオブジェクト等を認識することができる。1つ以上のオブジェクト認識装置が、ある特性を伴うオブジェクトのために特殊化されてもよい。例えば、オブジェクト認識装置708aは、顔を認識するために使用されてもよい一方、別のオブジェクト認識装置は、ドキュメントを認識するために使用されてもよい。
オブジェクト認識は、種々のコンピュータビジョン技法を使用して実施されてもよい。例えば、ウェアラブルシステムは、外向きに面した結像システム464(図4に示される)によって入手された画像を分析し、場面再構成、イベント検出、ビデオ追跡、オブジェクト認識(例えば、人物またはドキュメント)、オブジェクト姿勢推定、顔認識(例えば、環境内の人物またはドキュメント上の画像から)、学習、インデックス化、運動推定、または画像分析(例えば、写真、署名、識別情報、旅行情報等のドキュメント内の印を識別する)等を実施することができる。1つ以上のコンピュータビジョンアルゴリズムが、これらのタスクを実施するために使用されてもよい。コンピュータビジョンアルゴリズムの非限定的実施例は、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)、配向FASTおよび回転BRIEF(ORB)、バイナリロバスト不変スケーラブルキーポイント(BRISK)、高速網膜キーポイント(FREAK)、Viola−Jonesアルゴリズム、Eigenfacesアプローチ、Lucas−Kanadeアルゴリズム、Horn−Schunkアルゴリズム、Mean−shiftアルゴリズム、視覚的同時位置推定およびマッピング(vSLAM)技法、シーケンシャルベイズ推定器(例えば、カルマンフィルタ、拡張カルマンフィルタ等)、バンドル調節、適応閾値化(および他の閾値化技法)、反復最近傍点(ICP)、セミグローバルマッチング(SGM)、セミグローバルブロックマッチング(SGBM)、特徴点ヒストグラム、種々の機械学習アルゴリズム(例えば、サポートベクトルマシン、k最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク(畳み込みまたは深層ニューラルネットワークを含む)、または他の教師あり/教師なしモデル等)等を含む。
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、HMDによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、教師ありまたは教師なし機械学習アルゴリズムを含むことができ、回帰アルゴリズム(例えば、通常の最小2乗回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル量子化等)、決定ツリーアルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタリングアルゴリズム(例えば、k−平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、Perceptron等)、深層学習アルゴリズム(例えば、Deep Boltzmann Machine、すなわち、深層ニューラルネットワーク等)、次元削減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、Stacked Gneralization等)、または他の機械学習アルゴリズムを含む。いくつかの実施形態では、個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ(例えば、テレプレゼンスセッション内の特定のユーザ)、データセット(例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット)、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。いくつかの実施形態では、ウェアラブルHMDは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用することを含んでもよい。
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置708a−708nは、オブジェクトを認識し、オブジェクトを意味論情報で補完し、生命をオブジェクトに与えてもよい。例えば、オブジェクト認識装置が、点のセットがドアであることを認識する場合、システムは、いくつかの意味論情報を結び付けてもよい(例えば、ドアは、ヒンジを有し、ヒンジを中心として90度移動を有する)。オブジェクト認識装置が、点のセットが鏡であることを認識する場合、システムは、鏡が、部屋内のオブジェクトの画像を反射させ得る、反射表面を有するという意味論情報を結び付けてもよい。意味論情報は、本明細書に説明されるように、オブジェクトのアフォーダンスを含むことができる。例えば、意味論情報は、オブジェクトの法線を含んでもよい。システムは、ベクトルを割り当てることができ、その方向は、オブジェクトの法線を示す。経時的に、マップデータベースは、システム(ローカルに常駐し得る、または無線ネットワークを通してアクセス可能であり得る)が、より多くのデータを世界から蓄積するにつれて成長する。いったんオブジェクトが認識されると、情報は、1つ以上のウェアラブルシステムに伝送されてもよい。例えば、MR環境700は、Californiaで発生している場面についての情報を含んでもよい。環境700は、New Yorkにおける1人以上のユーザに伝送されてもよい。FOVカメラおよび他の入力から受信されたデータに基づいて、オブジェクト認識装置および他のソフトウェアコンポーネントは、場面が世界の異なる部分に存在し得る第2のユーザに正確に「パス」され得るように、種々の画像から収集された点をマッピングし、オブジェクトを認識すること等ができる。環境700はまた、位置特定目的のために、トポロジマップを使用してもよい。
図8は、認識されたオブジェクトに関連して仮想コンテンツをレンダリングする方法800の実施例のプロセスフロー図である。方法800は、仮想場面がウェアラブルシステムのユーザに提示され得る方法を説明する。ユーザは、その場面から地理的に遠隔に存在してもよい。例えば、ユーザは、New Yorkに存在し得るが、Californiaで現在起こっている場面を視認することを所望し得る、またはCaliforniaに存在する友人と散歩に行くことを所望し得る。
ブロック810では、ウェアラブルシステムは、ユーザの環境に関する入力をユーザおよび他のユーザから受信してもよい。これは、種々の入力デバイスおよびマップデータベース内にすでに保有されている知識を通して達成されてもよい。ユーザのFOVカメラ、センサ、GPS、眼追跡等が、ブロック810において、情報をシステムに伝達する。システムは、ブロック820において、本情報に基づいて、疎点を決定してもよい。疎点は、ユーザの周囲における種々のオブジェクトの配向および位置を表示および理解する際に使用され得る、姿勢データ(例えば、頭部姿勢、眼姿勢、身体姿勢、または手のジェスチャ)を決定する際に使用されてもよい。オブジェクト認識装置708a、708nは、ブロック830において、これらの収集された点を通してクローリングし、マップデータベースを使用して、1つ以上のオブジェクトを認識してもよい。本情報は、次いで、ブロック840において、ユーザの個々のウェアラブルシステムに伝達されてもよく、所望の仮想場面が、ブロック850において、適宜、ユーザに表示されてもよい。例えば、所望の仮想場面(例えば、CAにおけるユーザ)が、New Yorkにおけるユーザの種々のオブジェクトおよび他の周囲に関連して、適切な配向、位置等において表示されてもよい。
複数のウェアラブルシステム間の例示的通信
図9Aは、相互に相互作用する複数のユーザデバイスを描写する、全体的システム図を図式的に図示する。コンピューティング環境900は、ユーザデバイス930a、930b、930cを含む。ユーザデバイス930a、930b、および930cは、ネットワーク990を通して、相互に通信することができる。ユーザデバイス930a−930cはそれぞれ、ネットワークインターフェースを含み、ネットワーク990を介して、遠隔コンピューティングシステム920(また、ネットワークインターフェース971を含んでもよい)と通信することができる。ネットワーク990は、LAN、WAN、ピアツーピアネットワーク、無線、Bluetooth(登録商標)、または任意の他のネットワークであってもよい。コンピューティング環境900はまた、1つ以上の遠隔コンピューティングシステム920を含むことができる。遠隔コンピューティングシステム920は、クラスタ化され、異なる地理的場所に位置する、サーバコンピュータシステムを含んでもよい。ユーザデバイス930a、930b、および930cは、ネットワーク990を介して、遠隔コンピューティングシステム920と通信してもよい。
遠隔コンピューティングシステム920は、遠隔データリポジトリ980を含んでもよく、これは、具体的ユーザの物理および/または仮想世界についての情報を維持することができる。データ記憶装置980は、ユーザ、ユーザの環境(例えば、ユーザの環境の世界マップ)、またはユーザのアバタの構成に関連する情報を記憶することができる。遠隔データリポジトリは、図2に示される遠隔データリポジトリ280の実施形態であってもよい。遠隔コンピューティングシステム920はまた、遠隔処理モジュール970を含んでもよい。遠隔処理モジュール970は、図2に示される遠隔処理モジュール970の実施形態であってもよい。遠隔処理モジュール970は、1つ以上のプロセッサを含んでもよく、これは、ユーザデバイス(930a、930b、930c)および遠隔データリポジトリ980と通信することができる。プロセッサは、ユーザデバイスおよび他の源から取得される情報を処理することができる。いくつかの実装では、処理または記憶の少なくとも一部は、ローカル処理およびデータモジュール260(図2に示されるように)によって提供されることができる。遠隔コンピューティングシステム920は、所与のユーザが、具体的ユーザ自身の物理的および/または仮想世界についての情報を別のユーザと共有することを可能にしてもよい。
ユーザデバイスは、単独で、または組み合わせて、ウェアラブルデバイス(HMDまたはARD等)、コンピュータ、モバイルデバイス、または任意の他のデバイスであってもよい。例えば、ユーザデバイス930bおよび930cは、図2に示されるウェアラブルシステム200(または図4に示されるウェアラブルシステム400)の実施形態であってもよく、これは、AR/VR/MRコンテンツを提示するように構成されることができる。
ユーザデバイスのうちの1つ以上のものは、図4に示されるユーザ入力デバイス466と併用されることができる。ユーザデバイスは、ユーザおよびユーザの環境についての情報を取得することができる(例えば、図4に示される外向きに面した結像システム464を使用して)。ユーザデバイスおよび/または遠隔コンピューティングシステム1220は、ユーザデバイスから取得される情報を使用して、画像、点、および他の情報の集合を構築、更新、および建造することができる。例えば、ユーザデバイスは、入手された未加工情報を処理し、さらなる処理のために、処理された情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスはまた、処理のために、未加工情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスは、処理された情報を遠隔コンピューティングシステム1220から受信し、ユーザに投影させる前に、最終処理を提供してもよい。ユーザデバイスはまた、取得された情報を処理し、処理された情報を他のユーザデバイスに渡してもよい。ユーザデバイスは、入手された情報を処理しながら、遠隔データリポジトリ1280と通信してもよい。複数のユーザデバイスおよび/または複数のサーバコンピュータシステムが、入手された画像の構築および/または処理に関与してもよい。
物理的世界に関する情報は、経時的に展開されてもよく、異なるユーザデバイスによって収集される情報に基づいてもよい。仮想世界のモデルはまた、経時的に展開され、異なるユーザの入力に基づいてもよい。そのような情報およびモデルは、時として、本明細書では、世界マップまたは世界モデルと称され得る。図6および7を参照して説明されるように、ユーザデバイスによって入手された情報は、世界マップ910を構築するために使用されてもよい。世界マップ910は、図6Aに説明されるマップ620の少なくとも一部を含んでもよい。種々のオブジェクト認識装置(例えば、708a、708b、708c…708n)が、オブジェクトおよびタグ画像を認識するため、および意味論情報をオブジェクトに付加するために使用されてもよい。これらのオブジェクト認識装置はまた、図7に説明される。
遠隔データリポジトリ980は、データを記憶し、世界マップ910の構造を促進するために使用されることができる。ユーザデバイスは、ユーザの環境についての情報を常に更新し、世界マップ910についての情報を受信することができる。世界マップ910は、ユーザまたは別の人物によって作成されてもよい。本明細書に議論されるように、ユーザデバイス(例えば、930a、930b、930c)および遠隔コンピューティングシステム920は、単独で、または組み合わせて、世界マップ910を構築および/または更新してもよい。例えば、ユーザデバイスは、遠隔処理モジュール970および遠隔データリポジトリ980と通信してもよい。ユーザデバイスは、ユーザおよびユーザの環境についての情報を入手および/または処理してもよい。遠隔処理モジュール970は、遠隔データリポジトリ980およびユーザデバイス(例えば、930a、930b、930c)と通信し、ユーザおよびユーザの環境についての情報を処理してもよい。遠隔コンピューティングシステム920は、例えば、ユーザの画像を選択的にクロッピングする、ユーザの背景を修正する、仮想オブジェクトをユーザの環境に追加する、ユーザの発話に補助情報で注釈を付ける等、ユーザデバイス(例えば、930a、930b、930c)によって入手された情報を修正することができる。遠隔コンピューティングシステム920は、処理された情報を同一および/または異なるユーザデバイスに送信することができる。
(テレプレゼンスセッションの実施例)
図9Bは、個別のウェアラブルシステムの2人のユーザがテレプレゼンスセッションを行っている、実施例を描写する。2人のユーザ(本実施例では、Alice912およびBob914と命名される)が、本図に示される。2人のユーザは、その個別のウェアラブルデバイス902および904を装着しており、これは、テレプレゼンスセッションにおいて他のユーザの仮想アバタを表すために、図2を参照して説明される、HMD(例えば、システム200のディスプレイデバイス220)を含むことができる。2人のユーザは、ウェアラブルデバイスを使用して、テレプレゼンスセッションを行うことができる。2人のユーザを分離する、図9Bにおける垂直線は、Alice912およびBob914が、テレプレゼンスを介して彼らが通信する間、2つの異なる場所に存在し得る(但し、その必要はない)(例えば、Aliceは、Atlantaにおけるそのオフィス内に存在し得る一方、Bobは、Bostonの屋外に存在する)ことを図示するように意図されることに留意されたい。
図9Aを参照して説明されるように、ウェアラブルデバイス902および904は、相互または他のユーザデバイスおよびコンピュータシステムと通信してもよい。例えば、Aliceのウェアラブルデバイス902は、例えば、ネットワーク990(図9Aに示される)を介して、Bobのウェアラブルデバイス904と通信してもよい。ウェアラブルデバイス902および904は、ユーザの環境および環境内の移動(例えば、個別の外向きに面した結像システム464または1つ以上の場所センサを介して)および発話(例えば、個別のオーディオセンサ232を介して)を追跡することができる。ウェアラブルデバイス902および904はまた、内向きに面した結像システム462によって入手されたデータに基づいて、ユーザの眼移動または視線を追跡することができる。いくつかの状況では、ウェアラブルデバイスはまた、ユーザが反射性表面の近傍に存在する場合、ユーザの顔の表情または他の身体移動(例えば、腕または脚部移動)を捕捉または追跡することができ、外向きに面した結像システム464は、ユーザの反射された画像を取得し、ユーザの顔の表情または他の身体移動を観察することができる。
ウェアラブルデバイスは、第1のユーザおよび環境の入手された情報を使用して、第2のユーザのウェアラブルデバイスによってレンダリングされ、第2のユーザの環境内における第1のユーザの存在の有形感覚を作成するであろう、仮想アバタをアニメーション化することができる。例えば、ウェアラブルデバイス902および904および遠隔コンピューティングシステム920は、単独で、または組み合わせて、Bobのウェアラブルデバイス904による提示のために、Aliceの画像または移動を処理してもよい、またはAliceのウェアラブルデバイス902による提示のために、Bobの画像または移動を処理してもよい。本明細書にさらに説明されるように、アバタは、例えば、ユーザの意図、ユーザの環境またはその中にアバタがレンダリングされる環境、またはヒトの他の生物学的特徴等のコンテキスト情報に基づいて、レンダリングされることができる。
実施例は、2人のみのユーザを参照するが、本明細書に説明される技法は、2人のユーザに限定されるべきではない。ウェアラブルデバイス(または他のテレプレゼンスデバイス)を使用する、複数のユーザ(例えば、2人、3人、4人、5人、6人、またはそれを上回る)が、テレプレゼンスセッションに参加してもよい。特定のユーザのウェアラブルデバイスは、テレプレゼンスセッションの間、その特定のユーザに、他のユーザのアバタを提示することができる。さらに、本図における実施例は、環境内に立っているユーザを示すが、ユーザは、立っているように要求されない。ユーザのいずれかは、テレプレゼンスセッションの間、立っている、座っている、膝をついている、横になっている、歩いている、または走っていてもよい、または任意の位置または移動状態にあってもよい。ユーザはまた、本明細書の実施例に説明される以外の物理的環境内に存在してもよい。ユーザは、テレプレゼンスセッションを行っている間、別個の環境内に存在してもよい、または同一環境内に存在してもよい。全てのユーザが、テレプレゼンスセッションにおいて、その個別のHMDを装着することが要求されるわけではない。例えば、Alice912は、ウェブカメラおよびコンピュータ画面等の他の画像入手およびディスプレイデバイスを使用してもよい一方、Bob914は、ウェアラブルデバイス904を装着する。
(仮想アバタの実施例)
図10は、ウェアラブルシステムのユーザによって知覚されるようなアバタの実施例を図示する。図10に示される例示的アバタ1000は、部屋内の物理的植物の背後に立っている、Alice912(図9Bに示される)のアバタであることができる。アバタは、サイズ、外観(例えば、肌色、顔色、髪型、衣類、およびしわ、ほくろ、しみ、にきび、えくぼ等の皮膚および顔特徴)、位置、配向、移動、姿勢、表情等の種々の特性を含むことができる。これらの特性は、アバタと関連付けられたユーザに基づいてもよい(例えば、Aliceのアバタ1000は、実際の人物Alice912の一部または全部の特性を有してもよい)。本明細書にさらに説明されるように、アバタ1000は、コンテキスト情報に基づいて、アニメーション化されることができ、これは、アバタ1000の特性のうちの1つ以上のものに対する調節を含むことができる。概して、人物(例えば、Alice)の物理的外観を表すように本明細書に説明されるが、これは、限定ではなく、例証のためのものである。Aliceのアバタは、Alice以外の別の実際または架空のヒト、擬人化されたオブジェクト、創造物、または任意の他の実際または架空の表現の外観を表し得る。さらに、図10における植物は、物理的である必要はなく、ウェアラブルシステムによってユーザに提示される植物の仮想表現であり得る。また、図10に示されるものの付加的または異なる仮想コンテンツも、ユーザに提示され得る。
(仮想キャラクタのためのリギングシステムの実施例)
ヒトアバタ等のアニメーション化された仮想キャラクタが、全体的または部分的に、コンピュータグラフィック内にポリゴンメッシュとして表されることができる。ポリゴンメッシュ、または略して、単に、「メッシュ」は、モデル化された3次元空間内の点の集合である。メッシュは、その表面が仮想キャラクタ(またはその一部)の身体または形状を定義する、多角形オブジェクトを形成することができる。メッシュは、任意の数の点を含むことができるが(利用可能なコンピューティングパワーによって課され得る、実践的限界内において)、より多くの点を伴うより細かいメッシュは、概して、実在の人々、動物、オブジェクト等により近似し得る、より細かい詳細を伴うより現実的仮想キャラクタを描写することが可能である。図10は、アバタ1000の眼の周囲のメッシュ1010の実施例を示す。
メッシュ内の各点は、モデル化された3次元空間内の座標によって定義されることができる。モデル化された3次元空間は、例えば、(x、y、z)座標によってアドレス指定されるデカルト空間であることができる。メッシュ内の点は、ポリゴンの頂点であって、これは、多角形オブジェクトを構成する。各ポリゴンは、多角形オブジェクトの表面、すなわち、面を表し、頂点の順序付けられたセットによって定義され、各ポリゴンの辺は、頂点の順序付けられたセットを接続する、直線縁である。ある場合には、メッシュ内のポリゴン頂点は、それらが必ずしも3Dグラフィック内において同一平面にあるわけではないという点で、幾何学的ポリゴンと異なり得る。加えて、メッシュ内のポリゴンの頂点は、共線形であり得、その場合、ポリゴンは、ゼロ面積を有する(縮退ポリゴンと称される)。
いくつかの実施形態では、メッシュは、3頂点ポリゴン(すなわち、略して、三角形または「三角」)または4頂点ポリゴン(すなわち、略して、四辺形または「四角」)から成る。しかしながら、高次ポリゴンもまた、いくつかのメッシュでは使用されることができる。メッシュは、直接コンテンツ作成(DCC)アプリケーション(例えば、主に、3Dコンピュータグラフィックを作成および操作するために設計される、Maya(Autodesk, Inc.から利用可能)またはHoudini(Side Effects Software Inc.から利用可能)等のアプリケーション)では、典型的には、四角ベースである一方、メッシュは、リアルタイムアプリケーションでは、典型的には、三角ベースである。
仮想キャラクタをアニメーション化するために、そのメッシュは、その頂点の一部または全部を種々の瞬間における空間内の新しい位置に移動させることによって変形される。変形は、大規模移動(例えば、四肢の移動)および微細移動(例えば、顔移動)の両方を表すことができる。これらおよび他の変形は、実世界モデル(例えば、身体移動、関節運動、顔のゆがみ、表情等を実施する、実際のヒトの写真測量走査)、芸術指向的展開(実世界サンプリングに基づいてもよい)、それらの組み合わせ、または他の技法に基づくことができる。コンピュータグラフィックの初期の段階では、メッシュ変形は、頂点のための新しい位置を独立して設定することによって手動で遂行され得たが、現代のメッシュのサイズおよび複雑性を前提として、典型的には、自動化されたシステムおよびプロセスを使用して変形を生産することが望ましい。これらの変形を生産するための制御システム、プロセス、および技法は、リギング、または単に、「リグ」と称される。図6Bの例示的アバタ処理およびレンダリングシステム690は、3Dモデル処理システム680を含み、これは、リギングを実装することができる。
仮想キャラクタのためのリギングは、骨格系を使用して、メッシュ変形を補助することができる。骨格系は、関節の集合を含み、これは、メッシュのための関節運動の点に対応する。リギングのコンテキストでは、関節は、解剖学的意味において使用されるときのこれらの用語間の差異にもかかわらず、時として、「ボーン」とも称される。骨格系内の関節は、関節に適用され得る、変換に従って、相互に対して移動または別様に変化することができる。変換は、空間内の平行移動または回転および他の動作を含むことができる。関節は、相互に対して階層関係(例えば、親−子関係)を割り当てられることができる。これらの階層関係は、ある関節が、別の関節からの変換または他の特性を継承することを可能にすることができる。例えば、骨格系内の子関節は、子関節を親関節とともに移動させるように、その親関節に割り当てられた変換を継承することができる。
仮想キャラクタのための骨格系は、適切な位置における関節を用いて、かつ適切な局所回転軸、自由度等を用いて、定義され、所望のセットのメッシュ変形が行われることを可能にすることができる。いったん骨格系が、仮想キャラクタのために定義されると、各関節は、「スキニング」と呼ばれるプロセスにおいて、メッシュ内の種々の頂点に及ぼす影響の量を割り当てられることができる。これは、骨格系内の関節毎に、加重値を各頂点に割り当てることによって行われることができる。変換が、任意の所与の関節に適用されると、その影響下の頂点は、その個別の加重値に依存し得る量だけ、その関節変換に基づいて、自動的に移動または別様に改変されることができる。
リグは、複数の骨格系を含むことができる。1つのタイプの骨格系は、コア骨格(低次骨格とも称される)であって、これは、仮想キャラクタの大規模移動を制御するために使用され得る。例えば、ヒトアバタの場合、コア骨格は、ヒトの解剖学的骨格に類似し得る。リギング目的のためのコア骨格は、解剖学的に正しい骨格に正確にマッピングされ得ないが、類似配向および移動性質を伴う類似場所における関節のサブセットを有し得る。
上記に簡単に述べられたように、関節の骨格系は、例えば、関節間の親−子関係を伴う、階層であることができる。変換(例えば、位置および/または配向の変化)が、骨格系内の特定の関節に適用されると、同一変換が、同一階層内の全ての他のより低いレベルの関節に適用されることができる。例えば、ヒトアバタのためのリグの場合、コア骨格は、アバタの肩、肘、および手首のための別個の関節を含んでもよい。これらのうち、肩関節は、階層内で最高レベルを割り当てられてもよい一方、肘関節は、肩関節の子として割り当てられることができ、手首関節は、肘関節の子として割り当てられることができる。故に、特定の平行移動および/または回転変換が、肩関節に適用されると、同一変換がまた、肩と同一方法において平行移動および/または回転されるように、肘関節および手首関節にも適用されることができる。
その名称の含蓄にもかかわらず、リグ内の骨格系は、必ずしも、解剖学的骨格を表す必要はない。リギングでは、骨格系は、メッシュの変形を制御するために使用される、様々な階層を表すことができる。例えば、髪は、階層連鎖内の一連の関節として表され得、アバタの顔のゆがみに起因する、皮膚の動き(笑顔、眉を顰める、笑う、発話する、瞬目等の表情を表し得る)は、顔リグによって制御される一連の顔関節によって表され得、筋肉変形は、関節によってモデル化されることができ、衣類の動きは、関節のグリッドによって表され得る。
仮想キャラクタのためのリグは、複数の骨格系を含むことができ、そのうちのいくつかは、その他の移動を駆動し得る。低次骨格系は、1つ以上の高次骨格系を駆動するものである。逆に言えば、高次骨格系は、低次骨格系によって駆動または制御されるものである。例えば、キャラクタのコア骨格の移動は、アニメータによって手動で制御され得るが、コア骨格は、ひいては、高次骨格系の移動を駆動または制御することができる。例えば、高次ヘルパ関節(物理的骨格内の解剖学的類似物を有していなくてもよい)が、コア骨格の移動から生じる、メッシュ変形を改良するために提供されることができる。高次骨格系内のこれらおよび他の関節に適用される変換は、低次骨格に適用される変換からアルゴリズム的に導出されてもよい。高次骨格は、例えば、筋肉、皮膚、脂肪、衣類、髪、または任意の他の骨格系を表すことができ、これは、直接アニメーション制御を要求しない。
すでに議論されたように、変換は、メッシュ変形を行うために、骨格系内の関節に適用されることができる。リギングのコンテキストでは、変換は、3D空間内の1つ以上の所与の点を受け取り、1つ以上の新しい3D点の出力を生産する、機能を含む。例えば、変換は、関節を定義する、1つ以上の3D点を受け取ることができ、変換された関節を規定する、1つ以上の新しい3D点を出力することができる。関節変換は、例えば、平行移動成分、回転成分、およびスケール成分を含むことができる。
平行移動は、点のセットの配向またはサイズの変化を伴わずに、モデル化された3D空間内で1つ以上の規定された点のセットを規定された量だけ移動させる、変換である。回転は、規定された量だけ、モデル化された3D空間内で1つ以上の規定された点のセットを規定された軸を中心として回転させる(例えば、メッシュ内の全ての点をz−軸を中心として45度回転させる)、変換である。アフィン変換(または6自由度(DOF)変換)は、平行移動および回転を含むものである。アフィン変換の例示的適用は、そのサイズを変化させずに(但し、配向は、変化することができる)、空間内の1つ以上の点のセットを移動させることであると見なされ得る。アフィン変換はまた、剪断またはスケール変化を含むことができる。
一方、スケール変換は、その個別の座標を規定された値だけスケーリングすることによって、モデル化された3D空間内の1つ以上の規定された点を修正するものである。これは、点の変換されたセットのサイズおよび/または形状を変化させる。均一スケール変換は、同一量だけ各座標をスケーリングする一方、非均一スケール変換は、規定された点の(x、y、z)座標を独立してスケーリングすることができる。非均一スケール変換は、例えば、筋肉作用から生じ得るもの等の収縮および伸展効果を提供するために使用されることができる。さらに別のタイプの変換は、剪断変換である。剪断変換は、軸からのその座標の距離に基づいて、異なる量だけ点の座標を平行移動させることによって、モデル化された3D空間内の1つ以上の規定された点のセットを修正するものである。
変換が、関節に適用され、それを移動させると、その関節の影響下の頂点もまた、移動される。これは、メッシュの変形をもたらす。上記に議論されるように、加重を割り当て、各関節が各頂点に及ぼす影響を定量化するプロセスは、スキニング(または時として、「加重ペインティング」または「スキン加重」)と呼ばれる。加重は、典型的には、0(無影響を意味する)と1(完全影響を意味する)との間の値である。メッシュ内のいくつかの頂点は、単一関節によってのみ影響され得る。その場合、それらの頂点は、その関節のために、1の加重値を割り当てられ、その位置は、その他ではなく、その具体的関節に割り当てられた変換に基づいて変化される。メッシュ内の他の頂点は、複数の関節によって影響され得る。その場合、別個の加重が、影響を及ぼす関節の全てのために、それらの頂点に割り当てられ、頂点毎の加重の和は、1に等しい。これらの頂点の位置は、その影響を及ぼす関節の全てに割り当てられる変換に基づいて、変化される。
メッシュ内の頂点の全てのための加重割当を行うことは、特に、関節の数が増加するにつれて、極度に労働集約的となり得る。関節に適用される変換に応答して、加重を平衡し、所望のメッシュ変形を達成することは、高度に訓練された専門家にとってさえ非常に困難であり得る。リアルタイムアプリケーションの場合、タスクは、多くのリアルタイムシステムがまた、具体的頂点に加重され得る、関節の数(概して、8つまたはより少ない)に関する限界を強いるという事実によって、さらに複雑になり得る。そのような限界は、典型的には、グラフィック処理ユニット(GPU)内の効率の目的のために課される。
用語「スキニング」はまた、骨格系内の関節に適用される変換に基づいて、割り当てられた加重を使用して、メッシュを実際に変形させるプロセスを指す。例えば、一連のコア骨格関節変換が、アニメータによって、所望のキャラクタ移動(例えば、走っている動きまたはダンスステップ)を生産するように規定され得る。変換が、関節のうちの1つ以上のものに適用されると、新しい位置が、変換された関節の影響下の頂点のために計算される。任意の所与の頂点のための新しい位置は、典型的には、その特定の頂点に影響を及ぼす、全ての関節変換の加重平均として算出される。本加重平均を算出するために使用される、多くのアルゴリズムが存在するが、最も一般的であって、かつその単純性および制御の容易性に起因して、大部分のリアルタイムアプリケーションにおいて使用されるものは、線形ブレンドスキニング(LBS)である。線形ブレンドスキニングでは、頂点毎の新しい位置が、それに関してその頂点が非ゼロ加重を有する、各関節変換を使用して計算される。次いで、これらの関節変換のそれぞれから生じる、新しい頂点座標が、関節毎のその頂点に割り当てられる個別の加重に比例して平均される。実際は、LBSに対する周知の限界が存在し、高品質リグを作成する際の作業の多くは、これらの限界を見出し、克服することに費やされる。多くのヘルパ関節システムが、本目的のために具体的に設計される。
骨格系に加え、「ブレンドシェイプ」はまた、リギングにおいて、メッシュ変形を生産するためにも使用されることができる。ブレンドシェイプ(時として、「モーフ標的」または単に「形状」とも呼ばれる)は、メッシュ内の頂点のセットに適用される変形であって、セット内の各頂点は、加重に基づいて、規定された量だけ規定された方向に移動する。セット内の各頂点は、具体的ブレンドシェイプのためのその独自のカスタム運動を有し得、セット内の頂点を同時に移動させることは、所望の形状を生成するであろう。ブレンドシェイプ内の頂点毎のカスタム運動は、「デルタ」によって規定されることができ、これは、その頂点に適用されるXYZ運動の量および方向を表す、ベクトルである。ブレンドシェイプは、例えば、顔変形を生産し、いくつかの可能性のみを挙げると、眼、唇、眉、鼻、えくぼ等を移動させるために使用されることができる。
ブレンドシェイプは、芸術指向的方法においてメッシュを変形させるために有用である。それらは、正確な形状がモデルの走査からスカルピングまたは捕捉され得るにつれて、大量の制御をもたらす。しかし、ブレンドシェイプの利点は、ブレンドシェイプ内の全ての頂点のためのデルタを記憶する必要があることを代償とする。細かいメッシュおよび多くのブレンドシェイプを伴うアニメーション化されたキャラクタに関して、デルタデータの量は、有意となり得る。
各ブレンドシェイプは、ブレンドシェイプ加重を使用することによって、規定された程度まで適用されることができる。これらの加重は、典型的には、0(ブレンドシェイプは、全く適用されない)から1(ブレンドシェイプが、完全にアクティブである)に及ぶ。例えば、キャラクタの眼を移動させるためのブレンドシェイプは、眼を小量だけ移動させるための小加重を伴って適用されることができる、またはより大きい眼移動を作成するための大加重を伴って適用されることができる。
リグは、相互に組み合わせて、所望の複雑な変形を達成するために、複数のブレンドシェイプに適用されてもよい。例えば、笑顔を生産するために、リグは、口角を引っ張り、上唇を持ち上げ、下唇を下げ、および眼、眉、鼻、およびえくぼを移動させるために、組み合わせて、ブレンドシェイプに適用されてもよい。2つ以上のブレンドシェイプを組み合わせることからの所望の形状は、組み合わせ形状(または単に、「コンボ」)として知られる。
2つのブレンドシェイプを組み合わせて適用することから生じ得る、1つの問題は、ブレンドシェイプが、同一頂点のうちのいくつかに作用し得ることである。両ブレンドシェイプが、アクティブであるとき、結果は、二重変換または「離脱モデル」と呼ばれる。これに対するソリューションは、典型的には、補正ブレンドシェイプである。補正ブレンドシェイプは、中立点に対する所望の変形を表すのではなく、現在適用されている変形に対する所望の変形を表す、特殊ブレンドシェイプである。補正ブレンドシェイプ(または単に、「補正」)は、それらが補正するブレンドシェイプの加重に基づいて、適用されることができる。例えば、補正ブレンドシェイプのための加重は、補正ブレンドシェイプの適用をトリガする、下層ブレンドシェイプの加重に比例するように行われることができる。
補正ブレンドシェイプはまた、スキニング異常を補正する、または変形の品質を改良するために使用されることができる。例えば、関節が、具体的筋肉の運動を表し得るが、単一変換として、皮膚、脂肪、および筋肉の全ての非線形挙動を表すことができない。筋肉がアクティブ化するにつれて、補正または一連の補正を適用することは、より魅力的かつ説得力のある変形をもたらし得る。
リグは、層内に構築され、より低次かつ単純な層は、多くの場合、高次層を駆動する。これは、骨格系およびブレンドシェイプ変形の両方に適用される。例えば、すでに述べられたように、アニメーション化された仮想キャラクタのためのリギングは、低次骨格系によって制御される、高次骨格系を含んでもよい。制約、論理システム、および姿勢ベースの変形を含む、低次骨格に基づいて、高次骨格またはブレンドシェイプを制御するための多くの方法が存在する。
制約は、典型的には、特定のオブジェクトまたは関節変換が、別の関節またはオブジェクトに適用される変換の1つ以上の成分を制御する、システムである。多くの異なるタイプの制約が、存在する。例えば、照準制約は、標的変換の回転を変化させ、具体的方向または具体的オブジェクトに向ける。親制約は、対の変換間の仮想親−子関係として作用する。位置制約は、変換を具体的点または具体的オブジェクトに制約する。配向制約は、変換をオブジェクトの具体的回転に制約する。
論理システムは、入力のセットを前提として、いくつかの出力を生産する、数学的方程式のシステムである。これらは、学習されるのではなく、規定される。例えば、あるブレンドシェイプ値が、2つの他のブレンドシェイプの積として定義され得る(これは、組み合わせまたはコンボ形状として知られる補正形状の実施例である)。
姿勢ベースの変形もまた、高次骨格系またはブレンドシェイプを制御するために使用されることができる。骨格系の姿勢は、その骨格系内の全ての関節のための変換(例えば、回転および平行移動)の集合によって定義される。姿勢はまた、骨格系内の関節のサブセットのためにも定義されることができる。例えば、腕姿勢が、肩、肘、および手首関節に適用される変換によって定義され得る。姿勢空間デフォーマ(PSD)は、特定の姿勢と定義された姿勢との間の1つ以上の「距離」に基づいて、その姿勢のための変形出力を決定するために使用される、システムである。これらの距離は、姿勢のうちの1つが他のものと異なる程度を特性評価する、メトリックであることができる。PSDは、姿勢補間ノードを含むことができ、これは、例えば、関節回転(姿勢を定義する)のセットを入力パラメータとして受け取り、ひいては、正規化された姿勢毎の加重を出力し、ブレンドシェイプ等のデフォーマを駆動する。姿勢補間ノードは、放射基底関数(RBF)を用いたものを含む、種々の方法において実装されることができる。RBFは、関数の機械学習された数学的近似を実施することができる。RBFは、入力およびその関連付けられた予期される出力のセットを使用して、訓練されることができる。訓練データは、例えば、関節変換(特定の姿勢を定義する)およびそれらの姿勢に応答して適用されるべき対応するブレンドシェイプの複数のセットであり得る。いったん関数が、学習されると、新しい入力(例えば、姿勢)が、与えられることができ、その予期される出力が、効率的に算出されることができる。RBFは、人工ニューラルネットワークの亜種である。RBFは、より低いレベルの成分の状態に基づいて、リグのより高いレベルの成分を駆動するために使用されることができる。例えば、コア骨格の姿勢は、より高いレベルにおいて、ヘルパ関節および補正を駆動することができる。
これらの制御システムは、ともに連鎖化され、複雑な挙動を実施することができる。実施例として、眼リグは、水平および垂直回転のための2つの「見回し」値を含有し得る。これらの値は、いくつかの論理を通して通過され、眼関節変換の正確な回転を決定することができ、これは、ひいては、眼瞼の形状を変化させ、眼の位置に合致させる、ブレンドシェイプを制御する、RBFへの入力として使用され得る。これらの形状のアクティブ化値は、付加的論理等を使用して、顔の表情の他の成分を駆動するために使用され得る。
リギングシステムの目標は、典型的には、単純なヒトが理解可能な制御システムに基づいて、魅力的かつ高忠実性の変形を生産するための機構を提供することである。リアルタイムアプリケーションの場合、目標は、典型的には、最終品質に対して可能な限り少ない妥協点をもたらしながら、例えば、VR/AR/MRシステム200上で、リアルタイムで起動されるために十分に単純である、リギングシステムを提供することである。いくつかの実施形態では、3Dモデル処理システム680は、(VR/AR/MRシステムのユーザと)双方向的であって、ユーザの環境内で適切なコンテキストアバタ挙動(例えば、意図ベースの挙動)を提供するように、リギングシステムを実行し、複合現実環境100内でアバタをリアルタイムでアニメーション化する。
ベースメッシュを標的メッシュに合致させる
本明細書に議論されるように、リギングは、アバタの身体の変形(例えば、顔のゆがみ、腕移動、脚部移動、胴体移動、頭部回転および傾斜、握持および指示を含む、手移動等)についての情報をメッシュ上に転写するための技法を含む。メッシュをアニメーション化する(例えば、アバタをアニメーション化する)ことは、メッシュを形成する頂点の一部または全部を3D空間内の新しい位置に移動させることによって、メッシュを変形させることを含み得る。図6Bの例示的アバタ処理およびレンダリングシステム690は、3Dモデル処理システム680を含み、これは、リグ(例えば、メッシュを変形させ、アバタをアニメーション化するための制御システム)を実装することができる。メッシュが、多数の頂点を含み得るにつれて、リグは、典型的には、メッシュを制御することをより容易にする、コンピュータ化されたコマンドとして、一般的な望ましい変形を提供する。映画等の最高仕様視覚効果生産に関しては、リグが、大量の数学的算出を実施し、高度に現実的アニメーション効果を達成するための十分な生産時間が存在し得る。言い換えると、本コンテキストは、典型的には、高速性を犠牲にして、高品質を優先させる。しかし、リアルタイムアプリケーション(複合現実において等)に関しては、変形の速さは、非常に有利であり得、異なるリギング技法が、使用されてもよい。言い換えると、本コンテキストは、典型的には、高品質を犠牲にして、高速性を優先させる。リグは、多くの場合、骨格系および/またはブレンドシェイプに依拠する、変形を利用する。
部分的身体または全身デジタルアバタを作成するとき、多数の顔および/または身体走査が、アバタリグアニメーションおよび変形のための基準として入手されてもよい。リグは、階層行列の骨格構造(スキンクラスタ等)によって、かつブレンドシェイプを使用して、変形され得る、身体の中立静止状態を表し得る、ベースメッシュを含んでもよい。顔の表情および身体姿勢の走査は、リグのブレンドシェイプ変形のための基準として使用されてもよい。これらの基準走査は、通常、ベースメッシュと一貫しない、非構造化幾何学形状である。基準走査の形態および形状を1つ以上のベースメッシュに合致させるプロセスは、これまで、手間のかかる量の頂点を手動でスカルピングするステップを要求していた。実施例として、個々の基準またはベース走査は、単一の静的リグ姿勢(例えば、直線腕姿勢、45度に屈曲された腕姿勢、完全に屈曲された腕姿勢等)毎に、標的メッシュに手動でスカルピングされる必要があるであろう。
本開示は、剛体変換、非剛体変形、およびそのような変換および変形の反復の新規組み合わせを使用して、基準走査を1つ以上のベースメッシュに手間をかけて合致させる課題を克服し、最小限のヒト介入を伴って、手順通り、ベースメッシュの形状および形態を走査された基準に合致させる。本開示の実施形態では、ベースメッシュおよび標的メッシュを入力として取得し、好適な様式において、手順通り、ベースメッシュを標的メッシュに合致させ、合致されたベースメッシュ(例えば、アバタのアニメーションを補助するために使用され得る、転写メッシュまたはブレンドシェイプ)を出力する、システムが、提供される。少なくともいくつかの実施形態では、図6Bのアバタ処理およびレンダリングシステム690は、ベースメッシュを標的メッシュに合致させるための本明細書に説明される技法を実装してもよい。
図10に関連して本明細書に議論されるように、メッシュまたはポリゴンメッシュは、モデル化された3次元空間内の点の集合である。メッシュは、その表面が仮想キャラクタ(またはその一部)の身体または形状を定義する、多角形オブジェクトを形成することができる。メッシュは、任意の数の点を含むことができるが(利用可能なコンピューティングパワーによって課され得る、実践的限界内において)、より多くの点を伴うより細かいメッシュは、概して、実在の人々、動物、オブジェクト等により近似し得る、より細かい詳細を伴うより現実的仮想キャラクタを描写することが可能である。図10は、アバタ1000の眼の周囲のメッシュ1010の実施例を示す。メッシュ1010は、比較的に細かく(例えば、比較的に多数の点を有する)、眼領域内で生じる、複雑な曲線および移動の高品質シミュレーションを促進し得る。
(標的メッシュをベースメッシュに合致させる実施例)
図11A−11Bは、本開示の合致システムに取得または提供され得る、ベースメッシュおよび標的メッシュと、合致システムによって生成または提供され得る、転写メッシュ(例えば、合致されたベースメッシュ)の、腕およびシャツを含む、種々の実施例を図示する。図11A−11Bでは、メッシュの頂点は、示されないことに留意されたい。ベースメッシュは、その中立静止状態から所望の姿勢へのリグの骨格構造の変形によって取得されてもよい。標的メッシュは、所望の姿勢における人物の基準走査によって取得されてもよい。いくつかの実施形態では、基準走査は、モデルの2Dまたは3D写真または走査であってもよい。他の実施形態では、基準走査は、AR、MR、またはVRデバイス等の電子デバイスのユーザの2Dまたは3D写真または走査であってもよい。そのような実施形態では、ユーザは、電子デバイスの方向において、所望の姿勢をとってもよい(例えば、電子デバイスは、ユーザに、所定の姿勢に移動するようにプロンプトしてもよい)、または電子デバイスは、ユーザをリアルタイムで追跡し、アバタをアニメーション化し、ユーザの移動に合致させてもよい。これらは、単に、例証的実施例であって、一般に、ベース、標的、および転写メッシュは、任意の所望の目的のために取得されてもよい。
少なくともいくつかの実施形態では、ベースメッシュは、アバタまたは他の仮想オブジェクト等の多角形オブジェクトを定義する、クリーンメッシュまたは構造化された頂点、縁、および面のセットを指し得る。加えて、標的メッシュは、モデル、ユーザ、またはオブジェクト等の多角形オブジェクトを定義する、走査メッシュまたは非構造化頂点、縁、および面のセットを指し得る。いくつかの配列では、クリーンまたはベースメッシュは、リグの変形によって生成されてもよい一方、走査または標的メッシュは、写真測量法(例えば、カメラおよび他のセンサを使用した人物またはオブジェクトの3Dマッピング等、オブジェクト間の距離を測定するための調査およびマッピングにおける写真および他のセンサの使用)を使用して生成または取得されてもよい。
図11Aのベースメッシュ1110に示されるように、リグは、中立静止状態(本実施例では、リグの腕が比較的に直線様式において延在された状態であり得る)から、人物の左肘が完全にまたは略完全に屈曲されている、屈曲された腕の状態に変形されてもよい。ベースメッシュ1110に示されるように、本位置へのリグの変形は、ユーザの予期される変形に合致しない場合がある。実施例として、領域1112では、リグの前腕および上腕皮膚が、不自然に現れる様式で圧縮し得る(例えば、皮膚内の襞として)。対照的に、図11Aの標的メッシュ1120に示されるように、ベースメッシュ1110と同一姿勢におけるモデルまたはユーザの基準走査は、より自然な外観を肘領域1122に有し得る。特に、前腕は、標的メッシュ1122では、二頭筋が、ベースメッシュ1112におけるように、見掛け上、前腕の中に消失するのではなく、二頭筋を圧縮し得る。
本明細書に開示されるシステムおよびプロセスを使用すると、ベースメッシュは、標的メッシュに正確に一致され得る。これらのシステムおよびプロセスのうちのいくつかでは、ヒートマップ1130が、異なる大きさの誤差(例えば、メッシュ内の頂点の空間位置間の逸脱)が存在する、ベースメッシュ(または標的メッシュ)の領域を識別するために使用されてもよい。実施例として、ベースメッシュを標的メッシュに合致させるための本技法は、領域1132等の比較的に高誤差の領域(単線斜線を用いて示される)、領域1134等の比較的に中程度の誤差の領域(二重線斜線を用いて示される)、および領域1136等の比較的に低誤差の領域(斜交平行線模様を用いて示され、特に低誤差を有する手の部分では、斜線を伴わずに示される)を識別してもよく、誤差は、標的メッシュ内の対応する頂点の位置に対するベースメッシュ内の所与の頂点の位置の差異に関連する。図11Aに示されるように、ベースメッシュは、前腕および上腕筋肉が相互に対して圧縮する領域内では、標的メッシュから比較的に高位置差(例えば、高誤差)を有し得る。加えて、ベースメッシュは、高誤差領域の近傍の前腕および上腕の領域では、若干低い位置差(例えば、中間誤差)を有し得、手および肩等の肘から離れた領域では、殆どまたは全く位置差を有していない場合がある(例えば、無または低誤差)。
図11Aおよび11Bの実施例1130、1160は、ヒートマップと称され得、ベースメッシュと標的メッシュとの間の誤差が、視覚的に図示される。一実施例として、比較的に低いまたは無誤差の領域は、青色着色(または図11Aおよび11Bの斜交平行線模様等のあるタイプのマーキング)によって示されてもよく、比較的に中程度の誤差の領域は、緑色着色(または図11Aおよび11Bの二重線斜線等の別のタイプのマーキング)によって示されてもよく、比較的に高誤差の領域は、赤色着色(または図11Aおよび11Bの単線斜線等のさらに別のタイプのマーキング)によって示されてもよい。例えば、肘が不自然な襞を示す、領域1112は、ヒートマップ1130内の高誤差の単斜線領域1132にある。
誤差は、これらの実施例では、ベースメッシュと標的メッシュとの間の対応する対の頂点間の3次元距離を指し得る。いくつかの実施例では、高誤差領域は、0.2cm未満、約0.2cm、0.4cm、0.6cm、0.8cm、1.0cm、2.0cm、4.0cm、またはそれを上回る距離誤差を有し得、低から無誤差領域は、約0.05cm未満、0.1cm、0.2cm、0.3cm、0.5cm、1.0cm、またはそれを上回る距離誤差を有し得、中程度の誤差領域は、高誤差領域と低誤差領域との間の距離誤差を有し得る(例えば、中程度の誤差領域は、0.2cm未満、0.4cm、0.6cm、0.8cm、1.0cm、2.0cm、4.0cm、またはそれを上回る距離誤差等、高誤差領域未満であるが、約0.5cm、0.1cm、0.2cm、0.3cm、0.5cm、1.0cm、またはそれを上回る距離誤差等、低誤差領域を上回る、距離誤差を有し得る)。一実施例として、高誤差領域は、約0.4cm超の距離誤差を有し得、中程度の誤差領域は、約0.4cm〜約0.1cmの距離誤差を有し得、低から無誤差領域は、約0.1cm未満の距離誤差を有し得る。これらは、単に、例証的実施例である。色または他の好適な視覚的インジケータが、ベースメッシュを標的メッシュ上に転写するための開示されるプロセスのヒトアニメータによる迅速な視覚的監視を有効にするために利用されてもよい。
図11Aおよび11Bに示されるヒートマップは、異なるスタイルの斜線を使用して、3つの誤差領域を図示するが、これは、例証のためのものであって、限定することを意図するものではない。(例えば、2、3、4、5、10、20、またはそれを上回る)任意の数の誤差領域が、使用されることができる。さらに、斜線は、誤差が生じる場所の明確な視覚的インジケーションを提供するように意図される。いくつかの配列では、異なる誤差領域は、着色を介して図示されてもよい(気温を示すヒートマップに類似する)。完全に自動化されたシステムでは、システムは、斜線(または色または他の好適なパターンまたは視覚的インジケータ等の他のグラフィカル印)を異なる誤差領域に適用する必要はないであろう。しかしながら、いくつかのシステムは、ヒートマップのグラフィカル表現を生成およびレンダリングし、ヒトアニメータに、異なる量の誤差が生じる場所を表示してもよい。他の実施形態では、ヒートマップに加えて、またはその代替として、例えば、等高線プロットまたは任意の他の利用可能なグラフィック技法等の誤差の他のグラフィカル表現が、生成されてもよい。加えて、異なる誤差領域が、赤色、緑色、および青色(高誤差から、中間誤差、低誤差まで)として説明されているが、任意の色が、使用され得る、または任意のタイプの定量的または定質的スケール(例えば、数値スケールまたはグレードスケール(例えば、A、B、C))が、使用され得る。
下記にさらに説明されるであろうように、異なるメッシュ転写またはメッシュ合致技法が、異なる誤差領域内で使用され、ベースメッシュを標的メッシュ上に位置合わせし、一致させることができる。任意の特定のメッシュ転写技法は、その独自の一意の長所および短所を有するであろうため、システムは、有利には、誤差領域毎に、適切な技法を使用することができる。例えば、剛体メッシュ転写技法は、比較的に高誤差の領域内では、ベースメッシュおよび標的メッシュを位置合わせするために良好に性能を発揮し得るが、比較的に低誤差の領域内では、2つのメッシュを相互に一致させるためにあまり良好に性能を発揮しない。逆に言えば、非剛体メッシュ転写技法は、比較的に高誤差の領域内では、あまり良好に性能を発揮し得ないが、比較的に低誤差の領域内では、ベースメッシュを標的メッシュに一致させるために良好に性能を発揮する。故に、メッシュ転写システムの実装は、高誤差領域(例えば、ヒートマップ1130における単線斜線領域1132)内では、剛体転写技法を、中間誤差領域(例えば、ヒートマップ1130における二重線斜線領域1134)内では、非剛体転写技法を使用し、2つのメッシュが実質的に同一である、低誤差領域(例えば、ヒートマップ1130における斜交平行線模様領域1136)内では、付加的転写は、実施されない。したがって、システムは、有利には、適切なメッシュ転写技法をヒートマップ内の領域の各タイプに適用し得る。さらに、システムは、本アプローチを反復し、メッシュの全て(または実質的に全て)領域がヒートマップの低誤差(例えば、斜交平行線模様または青色)領域内に入るまで、ベースメッシュおよび標的メッシュを徐々に合致させてもよい。
図11Bは、ベースメッシュを標的メッシュに合致させ、転写メッシュを取得するための第2の実施例を図示する。特に、図11Bは、アバタ上の衣類としてモデル化され得る、シャツのベースメッシュ1140、標的メッシュ1150、およびヒートマップ1160を図示する。ベースメッシュ1140は、シャツのリグを中立姿勢から図示される姿勢(例えば、下層アバタの脚部が引き上げられたこと等に起因して、シャツの下側部分が持ち上げられ、シャツの図示される変形を引き起こす、姿勢)に変形させる結果を表し得る。図11Bに示されるように、ベースメッシュと標的メッシュとの間の誤差は、アバタまたはユーザの左脚部がシャツを持ち上げられている領域において最も顕著であり得る。実施例として、ベースメッシュ1140は、ユーザの脚部がシャツを自然な様式において持ち上げていない領域1142を有し得る一方、標的メッシュ1150は、シャツに対する自然な曲線を領域1152に図示し得る。標的メッシュ1150は、図示される姿勢に変形されたシャツの走査された基準(例えば、シャツを着用し、図示されるようにシャツを変形させる様式において姿勢をとっている、モデルまたはユーザの走査)を表し得る、または専門家によってモデル化されたメッシュであり得る。転写メッシュ1160は、識別された異なる誤差の領域とともに、標的メッシュに一致されたベースメッシュを表し得る。実施例として、領域1162、1164、および1166は、それぞれ、ベースメッシュと標的メッシュとの間の高、中間、および低位置誤差の領域を表し得る。
(例示的剛体変換)
図6Bのアバタ処理およびレンダリングシステム690または別の好適なシステムは、種々の技法を使用して、ベースメッシュを変換または変形させることによって、ベースメッシュを標的メッシュに合致させ得る。一実施例として、ベースメッシュを標的メッシュに合致させるステップは、剛体変換を伴ってもよい。剛体変換は、高度な誤差、高度な曲率を伴う領域、または高誤差および高曲率を伴う面積内に適用されてもよい。剛体変換は、変換されているベースメッシュの領域のサイズまたは形状を変化させない、例えば、領域内の頂点間の距離は、変換によって変化されない。ベースメッシュを標的メッシュに合致させるためにベースメッシュに適用され得る、剛体変換の実施例として、限定ではないが、剛体最近傍変換、フォールオフを伴う剛体最近傍(NN)変換、回転および平行移動等の線形変換、フォールオフの有無を問わない変換、およびこれらおよび他の変換の組み合わせが挙げられる。剛体変換の別の実施例は、反復最近傍点(ICP)アルゴリズムである。他の実施形態では、システム690は、アフィン変換を利用して、ベースメッシュを変換または変形させてもよい。
剛体最近傍変換プロセス1200の例示的適用は、図12Aに示される。図12Aに示されるように、ベースメッシュ1202は、ベースメッシュ1202の頂点が標的メッシュ1204の頂点により近くなるように変換され得る。1200aでは、ベースメッシュ1202および標的メッシュ1204の高誤差領域が、決定され得る。1200bでは、アバタ処理およびレンダリングシステム690または別の好適なシステムは、ベースメッシュ1202の頂点の一部または全部に関する最近傍を識別し得る。実施例として、図12Aは、ベースメッシュ1202上の3つの差異頂点に関する標的メッシュ1204上の最近傍1206を図示する。剛体NNプロセスは、n個の最近傍を利用してもよく、nは、1、2、3、4、5、6、またはそれを上回る数である。1200cに示されるように、アバタ処理およびレンダリングシステム690または別の好適なシステムは、次いで、ベースメッシュ1202を標的メッシュ1204に向かって剛体変換し得る。言い換えると、システムは、ベースメッシュ1202の形状を改変せずに、代わりに、ベースメッシュ1202を平行移動させる、回転させる、または他の剛体変換を適用して、ベースメッシュ1202上の頂点と標的メッシュ1204上のその対応する最近傍との間の距離の平均を最小限にまたは最適化するように試み得る。
少なくともいくつかの実施形態では、標的メッシュ1204に向かったベースメッシュ1202の剛体変換は、フォールオフを被り得、これは、剛体変形をより低い誤差を伴う近傍面積にフェザリングする。高誤差を伴うベースメッシュの個々の領域は、標的メッシュに向かって剛体変換され得る一方、より低い誤差を伴う近傍領域は、フォールオフ領域内に加重されたフォールオフを伴って剛体または非剛体変換される。少なくともいくつかの実施形態では、剛体変換された個々の領域は、剛体変換された領域(領域1208の内側の面積等)、変換されない周辺領域(領域1210の外側の面積等)、および剛体変換された領域1208と変換され得ない(または非剛体変形技法を含む、他の技法を使用して変換され得る)領域1210の外側の面積との間で平滑に遷移される、中間領域(領域1208と1210との間の面積等)を含み得る。
剛体変換におけるフォールオフは、高誤差の領域が、結果として生じる変換が隣接する領域内に新しい誤差をもたらすことなく、補正されることを可能にし得る。フォールオフの実施例は、図12Aの1200bおよび1200cに図示される。特に、1200bは、フォールオフ開始領域1208およびフォールオフ終了領域1210を図示する。フォールオフ開始領域1208内では、標的メッシュ1204に向かったベースメッシュ1202の剛体変換が、実施され得る(例えば、システムは、変換されたメッシュの形状を改変せずに、最近傍間の距離の平均を最小限にするように試み得る)。対照的に、システムは、領域1210の外側では、ベースメッシュ1202を比較的に不変のまま残し得る。中間領域1210では、システムは、領域1208の内側に適用される剛体変換技法の加重されたフォールオフを使用して、ベースメッシュ1202を変換し、剛体変換された領域1208と領域1210の外側のベースメッシュ1202の部分との間の平滑遷移を提供し得る。フォールオフ境界1208からフォールオフ境界1210に適用される、フェザリング遷移の加重されたフォールオフは、種々の実施形態では、線形、二次、指数関数的、または任意の他の好適なフォールオフであってもよい。
システムによって剛体変換された領域のサイズは、いくつかの実施形態では、ベースメッシュおよび標的メッシュ1202および1204の間の初期誤差の関数として変動し得る。実施例として、システムは、ある閾値を上回る誤差レベルを有する、ベースメッシュ1202内の頂点の数nを識別し得る。システムは、次いで、閾値を上回る誤差レベルを有する頂点のセットから、最大誤差を有する頂点のサブセットを識別し得る(例えば、システムは、頂点のn/2を最大誤差を伴う頂点として識別し得る)。システムは、次いで、最大誤差を伴う頂点のサブセット(例えば、最大誤差を伴う頂点のn/2)を剛体変換し、最近傍アプローチに基づいて、標的メッシュ1204に合致させ得る。いくつかの実施形態では、システムは、反復最近傍点(ICP)変換を利用して、最大誤差を伴う頂点のサブセットを剛体変換し、標的メッシュ1204に合致させ得る。
フォールオフ領域のサイズ(例えば、領域1208および1210の半径)は、少なくとも部分的に、変換されているオブジェクトのサイズ(例えば、高誤差領域のサイズ)に基づいて設定されてもよい、またはベースメッシュおよび標的メッシュ1202および1204の間の誤差の関数として変動してもよい。実施例として、フォールオフ半径は、π×xの平方根に設定されてもよく、xは、剛体変換されている領域内の最大誤差値(例えば、ベースメッシュ1202内の任意の所与の頂点と標的メッシュ1204内のその対応する近傍との間の最大単一距離)と等しい。フォールオフ領域は、剛体最近傍変換を、より低い誤差値を有する(かつそれに関して変換または非剛体変換が適用され得ない)、隣接する頂点にフェザリングする役割を果たし得る。いくつかの実施形態では、フォールオフ球の中心は、剛体変換されている領域の中心に設定されてもよい。他の実施形態では、フォールオフ球の中心は、最大誤差値と関連付けられた標的メッシュ1204上の頂点に設定されてもよい。
図12Aの1200cでは、例示的出力が、図示され、入力されたベースメッシュ1202は、形状1212に剛体変換されている。上記の議論と一貫して、入力されたベースメッシュ1202の変換は、フォールオフ領域1208の内側では、概して、剛体であり得、領域1210の外側では、変換または非剛体変換は、適用され得ず、システムは、領域1208内の剛体変換を領域1210の外側の無または非剛体変換に平滑にフェザリングし得る(例えば、領域1210内にあるが、1208の外側において)。フォールオフ領域を伴うフェザリングは、随意であるが、図13を参照して説明されるであろうような利点(例えば、メッシュの鮮明度または段階化の低減)を提供し得る。
(例示的非剛体変形)
ベースメッシュを標的メッシュに合致させるために、図6Bのアバタ処理およびレンダリングシステム690または別の好適なシステムによって使用され得る、他の技法は、非剛体変形を含む。非剛体変形は、中程度から低度の誤差(例えば、ベースメッシュ上の頂点と標的メッシュ上の対応する頂点との間の距離)を伴う領域または中程度から低曲率誤差を伴う領域内に適用されてもよい。非剛体変換では、メッシュの頂点間の距離は、変換下で変化することを可能にされ、領域のサイズ(または形状)は、変化し得る。標的メッシュに合致させるためにベースメッシュに適用され得る、非剛体変換の実施例として、限定ではないが、表面上の最近点変形(CPOS)、表面上の反復最近傍点変形、弾性位置合わせ、物理的変形モデル(例えば、皮膚をシミュレートするモデル)等が挙げられる。これらは、単に、例証的実施例であって、一般に、任意の所望の非剛体(または剛体)変形が、低から中程度の誤差の面積内に適用されてもよい。
非剛体の表面上の最近点(CPOS)プロセス1250の例示的適用は、図12Bに示される。図12Bに示されるように、ベースメッシュ1252は、ベースメッシュ1252の頂点が標的メッシュ1254の頂点により近くなるように変形され得る(例えば、非剛体変換される)。少なくともいくつかの実施形態では、非剛体変形は、ベースメッシュが標的メッシュに真空形成されるかのように、ベースメッシュを標的メッシュに一致させ得る。1250aでは、ベースメッシュ1252の中間誤差領域および標的メッシュ1254の対応する領域が、識別または取得され得る。1250bでは、ベースメッシュ1252の識別された領域内の頂点毎に、標的メッシュ1254の表面上の最近点(例えば、標的メッシュ1254の最近頂点)が、識別され得る。図12Bは、実施例として、ベースメッシュ1252の5つの異なる頂点および標的メッシュ1254の表面上の5つの対応する最近点に関する最近点1256を図示する。
1250cに示されるように、アバタ処理およびレンダリングシステム690または別の好適なシステムは、次いで、ベースメッシュ1252(例えば、中間レベルの誤差を伴うベースメッシュ領域)を標的メッシュ1254(例えば、中間レベルの誤差を伴うベースメッシュ領域に対応する標的メッシュ領域)に向かって非剛体変形させ得る。言い換えると、システムは、潜在的に、ゼロまで、ベースメッシュ1252内の各頂点と標的メッシュ1254上の最近点との間の距離を低減させるように試み得る。所望に応じて、システムは、表面上の初期最近点が、計算され、ベースメッシュ頂点が、ある割合まで、標的メッシュの表面上のその個別の最近点に向かって偏移され、次いで、最近点が、再計算され、ベースメッシュ頂点が、ある付加的割合(または残り)まで、標的メッシュの表面上のその個別の最近点に向かって偏移される、反復CPOSプロセスを採用してもよい。ステップ1250cに示されるように、システムは、ベースメッシュ1252が、標的メッシュ1254に実質的に一致し、したがって、ベースメッシュ1252の初期形状が、標的メッシュ1254の形状に変換され得るまで、ベースメッシュ1252を変形させ得る。
図12Aに関連して説明される剛体変換と同様に、システムは(随意に)、図12Bの非剛体変形でも、フォールオフを利用し得る。非剛体変形におけるフォールオフは、中程度または中間誤差の領域が、結果として生じる変換が新しい誤差をより低い誤差の隣接する領域内にもたらすことなく、補正されることを可能にし得る。図12Bの非剛体変換のためのフォールオフの実施例は、1250bに図示され、これは、フォールオフ開始領域1258およびフォールオフ終了領域1260を含む。フォールオフ開始領域1258内では、CPOS変形プロセスが、本明細書に説明されるよう進められ得、ベースメッシュの各頂点は、そのベースメッシュ頂点に最も近い標的メッシュ上の頂点に向かって移動する。フォールオフ終了領域1260の外側では、システムは、ベースメッシュ1252を比較的に不変のままに残し得る。中間領域では、システムは、CPOS変形をフェザリングし得る(例えば、システムは、フォールオフ開始領域1258により近い頂点に関しては、より多くのCPOS変形を、フォールオフ領域の外側縁により近い頂点に関しては、より少ないCPOS変形を提供し得る)。CPOS変形におけるフォールオフは、任意の1つの頂点の影響を平均化し、それによって、変形されたベースメッシュ1252内の頂点の明白な接続性を改良し、鮮明度または段階化等のアーチファクトを低減させ、合致プロセスにおける潜在的誤差の量を低減させることに役立ち得る。しかしながら、所望に応じて、システムは、フォールオフを伴わずに、非剛体変形を適用してもよい。
(非剛体変形におけるフォールオフ半径)
図13は、表面上の最近点(CPOS)変形または他の非剛体変形におけるフォールオフを改変する影響の実施例を図示する。
画像1300は、ベースメッシュを示す。画像1302は、フォールオフを伴わないCPOS変形後のベースメッシュを示す。
画像1304および1306は、フォールオフを伴うCPOS変形後のベースメッシュを示す。画像1304および1306から分かるように、フォールオフを伴うCPOS変形は、より平滑な出力(例えば、より平滑な合致されたメッシュ)をもたらす。
画像1308は、画像1300からのベースメッシュのフォールオフを伴わない、CPOS変形の結果を示す。画像1308に示されるように、単一頂点が、球体から離れるように引っ張られ、これは、スパイクを球体から延在させた。フォールオフが、適用された場合、単一頂点は、代わりに、画像1310として現れ、これは、より丸みを帯びた膨張として現れるであろう。
(剛体の反復を使用して標的メッシュをベースメッシュに合致させるための例示的プロセス)
図14A−14Cは、ベースメッシュを標的メッシュに合致させるための例示的プロセスを図示する。例示的プロセス1400は、遠隔処理モジュール270、ローカル処理およびデータモジュール260、図6Bのアバタ処理およびレンダリングシステム690、図9Aの遠隔コンピューティングシステム920、他の好適なコンピューティングデバイス、およびこれらおよび他のコンピューティングデバイスの組み合わせを含む、1つ以上のコンピューティングシステムによって実施されてもよい。
図14Aでは、ブロック1401および1402において、コンピューティングシステムは、ベースメッシュおよび標的メッシュを取得することができる。本明細書に議論されるように、コンピューティングシステムは、ブロック1401において、アバタまたはオブジェクトのリグを所望の姿勢に操作することによって、ベースメッシュを取得することができ、ブロック1402において、人物の皮膚および/または衣類(またはオブジェクトの表面)等上の複数の点の写真、3D画像、位置情報を取得することによって、または専門家に標的姿勢をスカルプティングさせることによって等、所望の姿勢における人物(またはオブジェクト等の他の標的)を走査することによって、標的メッシュを取得することができる。
ブロック1404および1406では、コンピューティングシステムは、ベースメッシュの頂点と標的メッシュの対応する頂点との間の距離誤差のセットを取得してもよく、ヒートマップを初期化してもよい。図11Aおよび11Bの実施例を参照すると、ヒートマップは、ヒートマップ1130および1160等の距離誤差のグラフィカル表現の形態をとってもよい。言い換えると、ヒートマップは、高誤差の領域を赤色(または単線斜線)でハイライトし、中間誤差の領域を緑色(または二重線斜線)でハイライトし、低から無誤差の領域を青色(または斜交平行線模様)でハイライトすること等によって、異なるレベルの誤差の領域を視覚的に図示してもよい。一般に、異なる色、異なる強度、陰影、点描、斜線、および斜交平行線模様等、可変誤差の領域を相互に区別する他の手段が、使用されてもよい。ブロック1406においてヒートマップを初期化するステップは、所望に応じて、また、ベースメッシュおよび標的メッシュの頂点を複数の領域にセグメント化するステップを含んでもよい。特に、比較的に高誤差を有すると識別された領域は、他の領域からセグメント化され、それらの他の領域と異なる処理ステップを受けてもよい。中間および低誤差を有する領域も同様に、他の領域からセグメント化され、異なる処理ステップを受けてもよい。
ブロック1408では、コンピューティングシステムは、合致プロセスが実施された反復の回数をチェックし、確認することができる。いくつかの実施形態では、コンピューティングシステムは、合致プロセスの所定の回数の反復が完了された後(例えば、ブロック1442の一部として)合致プロセスを終了してもよい。他の実施形態では、コンピューティングシステムは、合致プロセスがある所定の時間量を超えたかどうか等のある他の基準後、合致プロセスを終了してもよい。
ブロック1410では、コンピューティングシステムは、誤差レベルに基づいて(例えば、ヒートマップのスペクトルまたはベースメッシュを横断した誤差レベルのスペクトルに基づいて)、ヒートマップをグループに分割してもよい。ヒートマップの分割された領域は、次いで、その誤差レベルに応じて、異なるように処理されてもよい。実施例として、ブロック1410は、低誤差(例えば、例示的図11Aおよび11Bに示されるような斜交平行線模様)のベースメッシュの領域を識別し、それらの領域をブロック1412に通過させ、中間誤差または緑色(または二重線斜線)のベースメッシュの領域を識別し、それらの領域をブロック1416に通過させ、高誤差または赤色(または単線斜線)のベースメッシュの領域を識別し、それらの領域をブロック1424に通過させるステップを含んでもよい。
ブロック1414では、コンピューティングシステムは、変形または変換を伴わずに、ヒートマップの青色領域等の低から無誤差領域を通過させてもよい。言い換えると、コンピューティングシステムは、ベースメッシュのこれらの領域が、標的メッシュにすでに良好に合致されており、さらなる調節が必要とされないことを決定してもよい。
ブロック1418、1420、および1422では、コンピューティングシステムは、標的メッシュ1402に対して中間レベルの誤差を有する、ベースメッシュ1401の要素(例えば、頂点)を選択してもよく、表面上の最近点(CPOS)変形をベースメッシュ1401の選択された頂点に適用してもよい。コンピューティングシステムによってブロック1422において適用されるCPOS変形は、ベースメッシュ1402を標的メッシュ1402に非剛体一致させ得る。ブロック1422のCPOS変形は、図12Bと関連して説明されるように実施されてもよい。ブロック1420において随意に適用されるフォールオフもまた、図12Bおよび図13と関連して説明されるように実施されてもよい。
ブロック1426、1428、および1430では、コンピューティングシステムは、標的メッシュ1402に対して高レベルの誤差を有する、ベースメッシュ1401の要素(例えば、頂点)を選択してもよく、剛体最近傍変換をベースメッシュ1401の選択された頂点に適用してもよい。コンピューティングシステムによってブロック1430において適用される剛体最近傍変換は、ベースメッシュ1401の形状を変形させずに、ベースメッシュ1401を標的メッシュ1402に向かって剛体変換し得る。ブロック1430の剛体最近傍変換は、図12Aと関連して説明されるように実施されてもよく、ブロック1428において随意に適用されるフォールオフもまた、図12Aおよび図13と関連して説明されるように実施されてもよい。
ブロック1432では、コンピューティングシステムは、メッシュリラックス処理プロセスを実施し、実施されたばかりのCPOS変形および剛体最近傍変換によって導入される任意のアーチファクトに対処してもよい。実施例として、コンピューティングシステムは、変換されたベースメッシュ内の任意のスパイクを平滑化してもよい。リラックス処理プロセスは、線形または多項式平滑化プロセス等の平滑化またはフィルタリングプロセスを含むことができる。
ブロック1434では、コンピューティングシステムは、現時点で変換されているベースメッシュと標的メッシュ1402との間の誤差距離を再計算してもよい。
ブロック1436では、コンピューティングシステムは、随意に、低誤差レベル、中間誤差レベルを有する、現時点で変換されているベースメッシュの領域、および該当する場合、高誤差レベルを有する、残りの面積(例えば、頂点または頂点のグループ)を決定することによって、ヒートマップを更新してもよい。
ブロック1438では、コンピューティングシステムは、収束試験を実施してもよい。収束試験は、任意の所望のメトリックを使用して、現時点で変換されているベースメッシュが標的メッシュ1202に十分に合致されているかどうかをチェックし、確認し得る。一実施例として、ブロック1438の収束試験は、任意の頂点が、個々に、またはグループとして、中間または高レベル内に該当する誤差値を有するかどうかを識別するステップを伴ってもよい。コンピューティングシステムが、現時点で変換されているベースメッシュが標的メッシュに適正に合致されている(例えば、頂点の全てが青色範囲等の低から無誤差範囲内に該当する誤差レベルを有する)ことを決定する場合、コンピューティングシステムは、ブロック1442に進んでもよい。そうでなければ、コンピューティングシステムは、ブロック1440の一部として完了された転写反復の回数の随意のカウンタをインクリメントし、ブロック1408に戻ってもよい。上記に議論されるように、いったん完了された転写反復の回数が、ある限界に合致する(またはそれを超える)と、コンピューティングシステムは、ブロック1442に進んでもよい。所望に応じて、コンピューティングシステムは、収束試験および反復カウントの組み合わせを使用して、ブロック1442に進むべきときを決定してもよい。実施例として、コンピューティングシステムは、経時的にまたはある反復回数後、収束試験を緩和し、より低品質の合致が収束試験を通過することを可能にしてもよい。
ブロック1442、1444、および1446では、コンピューティングシステムは、ベースメッシュ1401を標的メッシュ1402に合致させるプロセスを終了してもよく、転写メッシュ、ブレンドシェイプ、または他の出力等の所望の出力を提供してもよい。一実施例として、コンピューティングシステムは、メッシュが標的メッシュ1402に合致するように、ベースメッシュ1401内の頂点がその初期位置から相対的に移動されるべき方法を示すデータを出力してもよい。
代替メッシュ転写技法の実施例
図14Aの上記に説明される配列の代替として、コンピューティングシステムは、反復の初期セット内の高誤差領域のみを変換する一方、中間および低誤差領域を未補正のまま残してもよく、反復の後のセット内では、中間および低誤差領域を補正してもよい。言い換えると、図14Bでは、ブロック1454、1456、および1460は、高誤差領域のみが反復の初期セット内で概ね合致されるように、反復の初期セットに関して省略されてもよい。反復の初期セットは、所望に応じて、その誤差が高誤差閾値レベルを下回って低減する様式において(したがって、領域は、ここでは、低または中間誤差領域として分類される)、より高い誤差領域の全部または実質的に全部が変換されるまで、継続してもよい。次いで、反復の初期セット後、ベースメッシュと標的メッシュの合致を終了させるために、ブロック1454、1456、および1460が、実施されてもよく、ブロック1458、1462は、省略されてもよい(不必要であるため、または代替として、含まれるが、高誤差領域が存在しないため、空グループを伴う)。
さらに別の代替として、コンピューティングシステムは、誤差以外の何らかのものに基づいて、入力メッシュをサブ領域に分割してもよい。実施例として、コンピューティングシステムは、市松模様等の幾何学的パターンを使用して、恣意的に、入力メッシュをサブ領域に分割してもよい。次いで、コンピューティングシステムは、上記に議論されるように、高誤差サブ領域(例えば、ヒートマップ内の「赤色」サブ領域)のみを変換してもよい、または図14Aの実施例と関連して議論されるように、高および中間誤差サブ領域を同時に変換してもよい。所望に応じて、コンピューティングシステムは、入力メッシュを市松模様に分割してもよく、それによって、領域のある割合(例えば、市松模様の赤色空間等、半分)のみが、直接変換される一方、領域の残りの半分(例えば、市松模様の白色空間)は、線形補間等によって、間接的に調節される(例えば、直接変換された頂点とのその接続に応答して、自動的に調節される)。
図14Bは、ベースメッシュを標的メッシュに合致させるための別の例示的プロセス1450を示す。例示的プロセス1450は、遠隔処理モジュール270、ローカル処理およびデータモジュール260、図6Bのアバタ処理およびレンダリングシステム690、図9Aの遠隔コンピューティングシステム920、他の好適なコンピューティングデバイス、およびこれらおよび他のコンピューティングデバイスの組み合わせを含む、1つ以上のコンピューティングシステムによって実施されてもよい。
ブロック1451では、コンピューティングシステムは、少なくとも1つのベースメッシュおよび少なくとも1つの標的メッシュを含む、合致させるためのメッシュを取得してもよい。
ブロック1452では、コンピューティングシステムは、メッシュ間の誤差の領域を識別してもよく、誤差レベルに基づいて、メッシュの領域を分離してもよい。実施例として、高誤差レベルの領域は、ブロック1458に進められてもよく、中間誤差レベルの領域は、ブロック1456に進められてもよく、低または無誤差レベルの領域は、ブロック1454に進められてもよい。ブロック1454は、変換を伴わずに、低または無誤差レベルの領域をブロック1464に通過させ得る。
ブロック1460および1462では、コンピューティングシステムは、ベースメッシュを標的メッシュに合致させるステップの一部として、所望の変換または変形をベースメッシュに適用してもよい。実施例として、コンピューティングシステムは、剛体変換を、ブロック1462において、高誤差を有する(例えば、標的メッシュと不良に合致される)、ベースメッシュの領域に適用してもよく、非剛体変形を、ブロック1460において、中間誤差を有する(例えば、標的メッシュとほぼ合致される)、ベースメッシュの領域に適用してもよい。
ブロック1464では、コンピューティングシステムは、調節されたベースメッシュを試験し、標的メッシュに十分に合致されているかどうかを確認してもよい。加えて、コンピューティングシステムは、条件が満たされた、例えば、反復合致プロセスがある所定の反復の回数を超えた、またはある所定の長さの時間または合致を定義する閾値が満たされたため、反復合致プロセスが中止されるべきであることを決定してもよい。コンピューティングシステムが、ベースメッシュが十分に合致されていない(およびプロセスを停止するための他の条件が満たされていない)と決定する場合、コンピューティングシステムは、ブロック1452に戻ってもよい。コンピューティングシステムが、ベースメッシュが十分に合致されている(またはプロセスを停止するための他の条件が満たされている)と決定する場合、コンピューティングシステムは、ブロック1466に進んでもよい。
ブロック1466では、コンピューティングシステムは、標的メッシュに合致されている、合致されたベースメッシュを出力してもよい。いくつかの実施形態では、ブロック1466におけるコンピューティングシステムの出力は、ブレンドシェイプと称され得る。
図14Cは、ベースメッシュを標的メッシュに合致させるための別の例示的プロセス1480を示す。例示的プロセス1480は、遠隔処理モジュール270、ローカル処理およびデータモジュール260、図6Bのアバタ処理およびレンダリングシステム690、図9Aの遠隔コンピューティングシステム920、他の好適なコンピューティングデバイス、およびこれらおよび他のコンピューティングデバイスの組み合わせを含む、1つ以上のコンピューティングシステムによって実施されてもよい。
ブロック1481では、コンピューティングシステムは、ベースメッシュおよび標的メッシュ等の入力メッシュを受信してもよい。
ブロック1482では、コンピューティングシステムは、ベースメッシュ内の第1および第2の領域を識別してもよい。いくつかの実施形態では、第1の領域は、標的メッシュに対して比較的に高誤差レベルを有する、ベースメッシュの領域(例えば、1つ以上の頂点)を表し得、第2の領域は、比較的に低誤差レベルを有する、ベースメッシュの領域を表し得る。他の実施形態では、第1および第2の領域は、誤差レベル以外の要因に基づいて識別されてもよい。実施例として、第1および第2の領域は、特定のパターンを使用したランダム選択によって(例えば、市松模様パターンをベースメッシュに適用し、市松模様内の白色正方形を第1の領域として、市松模様内の黒色正方形を第2の領域として識別する)、またはより高精細(例えば、より高い頂点の密度を有する領域)の領域を第1の領域として、より低精細の領域を第2の領域として選択することによって、識別されてもよい。
ブロック1484では、コンピューティングシステムは、剛体変換をベースメッシュの第1の領域(例えば、第1の領域に対応するベースメッシュの頂点)に適用してもよい。
ブロック1484では、コンピューティングシステムは、非剛体変形をベースメッシュの第2の領域(例えば、第2の領域に対応するベースメッシュの頂点)に適用してもよい。
ブロック1488では、コンピューティングシステムは、現時点で変換されているベースメッシュが標的メッシュに十分に合致されているかどうかを試験し、確認してもよい。十分に合致されていない場合、コンピューティングシステムは、図14Cに図示されるように、ブロック1482に戻る等によって、合致プロセスを反復してもよい。十分に合致されている場合、コンピューティングシステムは、ブロック1490に進み、時として、ブレンドシェイプとも称される、標的メッシュに合致する、変換されたベースメッシュ等の出力を提供してもよい。反復の回数が反復の最大回数を超える、またはメッシュ間の基点誤差(例えば、平均誤差、最大誤差等)が閾値を下回る等の収束試験が、適用されてもよい。例えば、閾値は、それを下回るとメッシュが十分に合致されていることになる距離を示し得る(例えば、閾値距離は、0.5cm、0.1cm、0.05cm、0.01cm等であってもよい)。
他の考慮点
本明細書に説明される、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされ得る、動的リンクライブラリ内にインストールされ得る、または解釈されるプログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つ以上の物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、アニメーションまたはビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能(例えば、論理または算術)またはステップを実装するための1つ以上の実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、追加される、削除される、修正される、または別様に本明細書に提供される例証的実施例から変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、任意の特定のシーケンスに限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそれから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証を目的とし、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
とりわけ、「〜できる(can)」、「〜し得る(could)」、「〜し得る(might)」、「〜し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つ以上の実施形態に対していかようにも要求されること、または1つ以上の実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを示唆することを意図されない。用語「〜を備える」、「〜を含む」、「〜を有する」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つ以上の」または「少なくとも1つ」を意味するように解釈されるべきである。
本明細書で使用されるように、項目のリスト「〜のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、およびA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図されない。
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、または連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。
下記に列挙される実施例等、仮想アバタまたはオブジェクトのためのベースメッシュを仮想アバタの標的メッシュまたはオブジェクトに合致させる、システムの種々の実施例が、本明細書に説明される。
実施例1:仮想アバタのためのベースメッシュを仮想アバタの標的メッシュに合致させるためのシステムであって、仮想アバタのための標的メッシュおよび仮想アバタのためのベースメッシュを記憶するように構成される、非一過性コンピュータ記憶装置であって、標的メッシュは、複数の標的メッシュ頂点を備え、ベースメッシュは、複数のベースメッシュ頂点を備える、非一過性コンピュータ記憶装置と、非一過性コンピュータ記憶装置と通信する、ハードウェアプロセッサであって、(i)標的メッシュとベースメッシュとの間の複数の誤差領域を決定し、各誤差領域は、ベースメッシュ頂点の位置と標的メッシュ頂点の位置との間の逸脱を表し、複数の誤差領域は、第1の誤差を有する、第1の誤差領域と、第2の誤差を有する、第2の誤差領域とを備え、第2の誤差は、第1の誤差未満であって、(ii)剛体変換を第1の誤差領域内のベースメッシュ頂点に適用し、(iii)非剛体変換を第2の誤差領域内のベースメッシュ頂点に適用し、変換されたベースメッシュが収束基準を満たすまで、動作(i)、(ii)、および(iii)を反復し、少なくとも部分的に、変換されたベースメッシュに基づいて、仮想アバタのためのブレンドシェイプを出力するようにプログラムされる、ハードウェアプロセッサとを備える、システム。
実施例2:標的メッシュは、ある姿勢をとっているヒトまたは動物対象の写真走査から決定される、上記実施例のいずれかに記載のシステム。
実施例3:複数の誤差領域は、第2の誤差未満である第3の誤差を有する、第3の誤差領域を備える、上記実施例のいずれかに記載のシステム。
実施例4:ハードウェアプロセッサは、変換を第3の領域内のベースメッシュ頂点に適用しないようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例5:剛体変換は、回転および平行移動を含む、上記実施例のいずれかに記載のシステム。
実施例6:剛体変換は、剛体最近傍変換を含む、上記実施例のいずれかに記載のシステム。
実施例7:非剛体変換は、表面上の最近点変換を含む、上記実施例のいずれかに記載のシステム。
実施例8:剛体変換または非剛体変換の一方または両方は、第1の頂点のセットと第2の頂点のセットとの間のフォールオフを含む、上記実施例のいずれかに記載のシステム。
実施例9:ハードウェアプロセッサはさらに、第1のフォールオフ領域を決定し、第1のフォールオフ領域外の第2のフォールオフ領域を決定し、第1のフォールオフ領域内のベースメッシュ頂点のために、剛体変換または非剛体変換を適用し、第2のフォールオフ領域内のベースメッシュ頂点のために、剛体変換または非剛体変換をフェザリングするようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例10:ハードウェアプロセッサはさらに、変換を第2のフォールオフ領域外のベースメッシュ頂点に適用しないようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例11:ハードウェアプロセッサは、少なくとも部分的に、第1の誤差領域または第2の誤差領域と関連付けられた誤差値に基づいて、第1のフォールオフ領域のサイズを決定するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例12:ハードウェアプロセッサはさらに、動作(ii)および(iii)の完了後、ベースメッシュ頂点をリラックス処理するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例13:収束基準は、反復の最大数または閾値誤差を下回る変換されたベースメッシュと標的メッシュとの間の誤差を含む、上記実施例のいずれかに記載のシステム。
実施例14:ハードウェアプロセッサはさらに、少なくとも部分的に、複数の誤差領域に基づいて、ヒートマップを生成するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例15:仮想アバタのためのベースメッシュを仮想アバタの標的メッシュに合致させるためのシステムであって、仮想アバタのための標的メッシュおよび仮想アバタのためのベースメッシュを記憶するように構成される、非一過性コンピュータ記憶装置であって、標的メッシュは、複数の標的メッシュ頂点を備え、ベースメッシュは、複数のベースメッシュ頂点を備える、非一過性コンピュータ記憶装置と、非一過性コンピュータ記憶装置と通信する、ハードウェアプロセッサであって、ベースメッシュの第1の領域のセットを識別し、ベースメッシュの第2の領域のセットを識別し、剛体変換を第1の領域のセット内のベースメッシュ頂点に適用し、変換されたベースメッシュを提供し、変換されたベースメッシュを出力するようにプログラムされる、ハードウェアプロセッサとを備える、システム。
実施例16:第1の領域のセットおよび第2の領域のセットは、市松模様パターンを形成する、上記実施例のいずれかに記載のシステム。
実施例17:ハードウェアプロセッサは、少なくとも部分的に、第1の領域のセット内に適用された剛体変換に基づいて、第2の領域のセット内のベースメッシュ頂点を補間するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例18:ハードウェアプロセッサは、非剛体変換を第2の領域のセット内の変換されたベースメッシュのベースメッシュ頂点に適用し、第2の変換されたベースメッシュを提供するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例19:ベースメッシュの第1または第2の領域のセットを識別するために、ハードウェアプロセッサは、ベースメッシュ頂点の位置と標的メッシュ頂点の位置との間の誤差を決定するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例20:第1の領域のセットは、第2の領域のセットより大きい誤差と関連付けられる、上記実施例のいずれかに記載のシステム。
実施例21:剛体変換をベースメッシュ頂点に適用するために、ハードウェアプロセッサは、第1の領域のセットと第2の領域のセットとの間のベースメッシュ頂点のための剛体変換をフェザリングするようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例22:変形可能オブジェクトのデジタル表現のために少なくとも1つのブレンドシェイプを生成するための方法であって、コンピューティング機器を使用して、それぞれ、複数のメッシュ頂点を備える、第1および第2のメッシュを取得するステップと、コンピューティング機器を使用して、(i)第1のメッシュの第1および第2の領域のメッシュ頂点と第2のメッシュのメッシュ頂点との間の距離差を決定し、(ii)第1のタイプの変換を第1のメッシュの第1の領域内のメッシュ頂点に適用し、第1の領域内のメッシュ頂点と関連付けられた距離差を低減させ、および(iii)第2のタイプの変換を第1のメッシュの第2の領域内のメッシュ頂点に適用し、第2の領域内のメッシュ頂点と関連付けられた距離差を低減させることによって、第1のメッシュを第2のメッシュに合致させるステップと、コンピューティング機器を使用して、少なくとも、変換されたメッシュ頂点を伴う第1のメッシュに基づいて、ブレンドシェイプを提供するステップとを含む、方法。
実施例23:第1のタイプの変換は、剛体変換を含み、第2のタイプの変換は、非剛体変形を含む、上記実施例のいずれかに記載の方法。
実施例24:第1のタイプの変換は、第1のメッシュの第1の領域の形状が維持される、剛体変換を含み、第2のタイプの変換は、第1のメッシュの第2の領域の形状が第2のメッシュの所与の領域の形状に合致するように改変される、非剛体変形を含む、上記実施例のいずれかに記載の方法。
実施例25:第1のメッシュを第2のメッシュに合致させるステップはさらに、第1の領域と関連付けられた距離誤差が第2の領域と関連付けられた距離誤差より大きいことを決定するステップを含む、上記実施例のいずれかに記載の方法。
実施例26:第1のメッシュを第2のメッシュに合致させるステップはさらに、収束基準が満たされたことを決定するステップを含み、ブレンドシェイプを提供するステップは、収束基準が満たされたことを決定することに応じて、ブレンドシェイプを提供するステップを含む、上記実施例のいずれかに記載の方法。
実施例27:収束基準が満たされたことを決定するステップは、第1のメッシュのメッシュ頂点と第2のメッシュの対応するメッシュ頂点との間の距離差が所与の量未満であることを決定するステップを含む、上記実施例のいずれかに記載の方法。
実施例28:第1のメッシュを第2のメッシュに合致させるステップはさらに、動作(ii)および(iii)のうちの少なくとも1つを反復するステップを含む、上記実施例のいずれかに記載の方法。
実施例29:収束基準が満たされたことを決定するステップは、動作(ii)および(iii)のうちの少なくとも1つが少なくとも所与の回数だけ反復されたことを決定するステップを含む、上記実施例のいずれかに記載の方法。
実施例30:コンピューティング機器を使用して、第1のメッシュを取得するステップは、変形可能オブジェクトのデジタル表現内の関節を移動させるステップを含む、上記実施例のいずれかに記載の方法。
実施例31:コンピューティング機器を使用して、第2のメッシュを取得するステップは、変形可能オブジェクトの実世界実施例を走査するステップを含む、上記実施例のいずれかに記載の方法。
実施例32:コンピューティング機器を使用して、第1のメッシュを取得するステップは、変形可能オブジェクが所与の姿勢にあるように、変形可能オブジェクトのデジタル表現内の関節を移動させるステップを含む、上記実施例のいずれかに記載の方法。
実施例33:コンピューティング機器を使用して、第2のメッシュを取得するステップは、所与の姿勢における変形可能オブジェクトの実世界実施例を走査するステップを含む、上記実施例のいずれかに記載の方法。
実施例34:変形可能オブジェクトは、ヒトのデジタルアバタを含み、コンピューティング機器を使用して、第1のメッシュを取得するステップは、ヒトのデジタルアバタを所与の姿勢に移動させるステップを含む、上記実施例のいずれかに記載の方法。
実施例35:コンピューティング機器を使用して、第2のメッシュを取得するステップは、人物が所与の姿勢にある間、人物を走査するステップを含む、上記実施例のいずれかに記載の方法。
実施例36:変形可能オブジェクトのデジタル表現のために少なくとも1つのブレンドシェイプを生成するためのシステムであって、それぞれ、複数のメッシュ頂点を備える、第1および第2のメッシュを記憶するように構成される、非一過性コンピュータ記憶装置と、第1のメッシュを第2のメッシュに合致させるように構成される、ハードウェアプロセッサであって、ハードウェアプロセッサは、非一過性コンピュータ記憶装置と通信し、(i)第1のメッシュの第1および第2の領域のメッシュ頂点と第2のメッシュのメッシュ頂点との間の距離差を決定し、(ii)第1のタイプの変換を第1のメッシュの第1の領域内のメッシュ頂点に適用し、第1の領域内のメッシュ頂点と関連付けられた距離差を低減させ、(iii)第2のタイプの変換を第1のメッシュの第2の領域内のメッシュ頂点に適用し、第2の領域内のメッシュ頂点と関連付けられた距離差を低減させ、(iv)少なくとも、変換されたメッシュ頂点を伴う第1のメッシュに基づいて、ブレンドシェイプを提供するようにプログラムされる、ハードウェアプロセッサとを備える、システム。
実施例37:第1のタイプの変換は、剛体変換を含み、第2のタイプの変換は、非剛体変形を含む、上記実施例のいずれかに記載のシステム。
実施例38:第1のタイプの変換は、第1のメッシュの第1の領域の形状が維持される、剛体変換を含み、第2のタイプの変換は、第1のメッシュの第2の領域の形状が第2のメッシュの所与の領域の形状に合致するように改変される、非剛体変形を含む、上記実施例のいずれかに記載のシステム。
実施例39:ハードウェアプロセッサは、第1の領域と関連付けられた距離誤差が第2の領域と関連付けられた距離誤差より大きいことを決定するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例40:ハードウェアプロセッサは、収束基準が満たされたことを決定し、収束基準が満たされたことの決定に応じて、ブレンドシェイプを提供するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例41:ハードウェアプロセッサは、第1のメッシュのメッシュ頂点と第2のメッシュの対応するメッシュ頂点との間の距離差が所与の量未満であることの決定に基づいて、収束基準が満たされたことを決定するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例42:ハードウェアプロセッサは、動作(ii)および(iii)のうちの少なくとも1つを反復し、第1のメッシュを第2のメッシュに合致させるようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例43:ハードウェアプロセッサは、動作(ii)および(iii)のうちの少なくとも1つが少なくとも所与の回数だけ反復されたことの決定に基づいて、収束基準が満たされたことを決定するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例44:ハードウェアプロセッサは、変形可能オブジェクトのデジタル表現内の関節を移動させ、第1のメッシュを取得するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例45:ハードウェアプロセッサは、変形可能オブジェクトの実世界実施例を走査し、第2のメッシュを取得するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例46:ハードウェアプロセッサは、変形可能オブジェクトが所与の姿勢にあるように、変形可能オブジェクトのデジタル表現内の関節を移動させ、第1のメッシュを取得するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例47:ハードウェアプロセッサは、所与の姿勢における変形可能オブジェクトの実世界実施例を走査し、第2のメッシュを取得するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例48:変形可能オブジェクトは、ヒトのデジタルアバタを含み、ハードウェアプロセッサは、ヒトのデジタルアバタを所与の姿勢に移動させ、第1のメッシュを取得するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例49:ハードウェアプロセッサは、人物が所与の姿勢にある間、人物を走査し、第2のメッシュを取得するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例50:ベースメッシュを標的メッシュに合致させるための方法であって、コンピューティング機器を使用して、それぞれ、複数の頂点を備える、ベースメッシュおよび標的メッシュを取得するステップと、コンピューティング機器を使用して、(i)ベースメッシュと標的メッシュとの間の距離差が第1の閾値を下回るまで、第1のタイプの変換の少なくとも1回の反復をベースメッシュの頂点のうちの少なくともいくつかに適用し、(ii)ベースメッシュと標的メッシュとの間の距離差が第2の閾値を下回るまで、第2のタイプの変換の少なくとも1回の反復をベースメッシュの頂点のうちの少なくともいくつかに適用し、第2の閾値は、第1の閾値より小さいことによって、ベースメッシュを標的メッシュに合致させるステップと、コンピューティング機器を使用して、少なくとも、変換された頂点を伴うベースメッシュに基づいて、出力を提供するステップとを含む、方法。
実施例51:第1のタイプの変換は、標的メッシュの対応する頂点に向かったベースメッシュの頂点のうちの少なくともいくつかの剛体変換を含む、上記実施例のいずれかに記載の方法。
実施例52:剛体変換は、剛体最近傍変換を含む、上記実施例のいずれかに記載の方法。
実施例53:第2のタイプの変換は、標的メッシュの対応する頂点に向かったベースメッシュの頂点のうちの少なくともいくつかの非剛体変形を含む、上記実施例のいずれかに記載の方法。
実施例54:非剛体変形は、表面上の最近点(CPOS)変形を含む、上記実施例のいずれかに記載の方法。
実施例55:距離差が第2の閾値を下回るまで、第2のタイプの変換の少なくとも1回の反復を適用するステップは、(a)第2のタイプの変換をベースメッシュの頂点のうちの少なくともいくつかに適用するステップと、(b)ベースメッシュの頂点と標的メッシュの対応する頂点との間の距離差を決定するステップと、決定された距離差が第2の閾値を下回る平均誤差を有するまで、動作(a)および(b)を反復するステップとを含む、上記実施例のいずれかに記載の方法。
実施例56:距離差が第2の閾値を下回るまで、第2のタイプの変換の少なくとも1回の反復を適用するステップは、(1)第2のタイプの変換をベースメッシュの頂点のうちの少なくともいくつかに適用するステップと、(2)ベースメッシュの頂点と標的メッシュの対応する頂点との間の距離差を決定するステップと、決定された距離差における最大誤差が第2の閾値を下回るまで、動作(1)および(2)を反復するステップとを含む、上記実施例のいずれかに記載の方法。
実施例57:距離差が第2の閾値を下回るまで、第2のタイプの変換の少なくとも1回の反復を適用するステップは、(A)第2のタイプの変換をベースメッシュの頂点のうちの少なくともいくつかに適用するステップと、(B)ベースメッシュの頂点と標的メッシュの対応する頂点との間の距離差を決定するステップと、決定された距離差における最大誤差が0.5cm未満になるまで、動作(A)および(B)を反復するステップとを含む、上記実施例のいずれかに記載の方法。
実施例58:第1のタイプの変換は、標的メッシュの対応する頂点に向かったベースメッシュの頂点のうちの少なくともいくつかの剛体変換を含み、第1のタイプの変換の少なくとも1回の反復を適用するステップは、フォールオフ領域を決定するステップと、フォールオフ領域内のベースメッシュの頂点のための剛体変換を適用するステップと、フォールオフ領域の外側のベースメッシュの頂点のための剛体変換をフェザリングするステップとを含む、上記実施例のいずれかに記載の方法。
実施例59:第1のタイプの変換は、標的メッシュの対応する頂点に向かったベースメッシュの頂点のうちの少なくともいくつかの剛体変換を含み、第1のタイプの変換の少なくとも1回の反復を適用するステップは、第1の閾値を上回る距離差を有する、ベースメッシュの頂点のグループ化を識別するステップであって、頂点のグループ化内の所与の頂点は、グループ化間の最大距離差を有する、ステップと、少なくとも部分的に、最大距離差の大きさに基づいて、フォールオフ領域のサイズを決定するステップと、フォールオフ領域内のベースメッシュの頂点のための剛体変換を適用するステップと、フォールオフ領域の外側のベースメッシュの頂点のための剛体変換をフェザリングするステップとを含む、上記実施例のいずれかに記載の方法。
実施例60:ベースメッシュを標的メッシュに合致させるためのシステムであって、それぞれ、複数の頂点を備える、ベースメッシュおよび標的メッシュを記憶するように構成される、非一過性コンピュータ記憶装置と、ベースメッシュを標的メッシュに合致させるように構成される、ハードウェアプロセッサであって、ハードウェアプロセッサは、非一過性コンピュータ記憶装置と通信し、(i)ベースメッシュと標的メッシュとの間の距離差が第1の閾値を下回るまで、第1のタイプの変換の少なくとも1回の反復をベースメッシュの頂点のうちの少なくともいくつかに適用し、(ii)ベースメッシュと標的メッシュとの間の距離差が第2の閾値を下回るまで、第2のタイプの変換の少なくとも1回の反復をベースメッシュの頂点のうちの少なくともいくつかに適用し、第2の閾値は、第1の閾値より小さく、(iii)少なくとも、変換された頂点を伴うベースメッシュに基づいて、出力を提供するようにプログラムされる、ハードウェアプロセッサとを備える、システム。
実施例61:第1のタイプの変換は、標的メッシュの対応する頂点に向かったベースメッシュの頂点のうちの少なくともいくつかの剛体変換を含む、上記実施例のいずれかに記載のシステム。
実施例62:剛体変換は、剛体最近傍変換を含む、上記実施例のいずれかに記載のシステム。
実施例63:第2のタイプの変換は、標的メッシュの対応する頂点に向かったベースメッシュの頂点のうちの少なくともいくつかの非剛体変形を含む、上記実施例のいずれかに記載のシステム。
実施例64:非剛体変形は、表面上の最近点(CPOS)変形を含む、上記実施例のいずれかに記載のシステム。
実施例65:ハードウェアプロセッサは、(a)第2のタイプの変換をベースメッシュの頂点のうちの少なくともいくつかに適用し、(b)ベースメッシュの頂点と標的メッシュの対応する頂点との間の距離差を決定し、決定された距離差が第2の閾値を下回る平均誤差を有するまで、動作(a)および(b)を反復するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例66:ハードウェアプロセッサは、(1)第2のタイプの変換をベースメッシュの頂点のうちの少なくともいくつかに適用し、(2)ベースメッシュの頂点と標的メッシュの対応する頂点との間の距離差を決定し、決定された距離差における最大誤差が第2の閾値を下回るまで、動作(1)および(2)を反復するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例67:ハードウェアプロセッサは、(A)第2のタイプの変換をベースメッシュの頂点のうちの少なくともいくつかに適用し、(B)ベースメッシュの頂点と標的メッシュの対応する頂点との間の距離差を決定し、決定された距離差における最大誤差が0.5cm未満となるまで、動作(A)および(B)を反復するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例68:第1のタイプの変換は、標的メッシュの対応する頂点に向かったベースメッシュの頂点のうちの少なくともいくつかの剛体変換を含み、ハードウェアプロセッサは、フォールオフ領域を決定し、フォールオフ領域内のベースメッシュの頂点のための剛体変換を適用し、フォールオフ領域の外側のベースメッシュの頂点のための剛体変換をフェザリングするようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例69:第1のタイプの変換は、標的メッシュの対応する頂点に向かったベースメッシュの頂点のうちの少なくともいくつかの剛体変換を含み、ハードウェアプロセッサは、第1の閾値を上回る距離差を有する、ベースメッシュの頂点のグループ化を識別し、頂点のグループ化内の所与の頂点は、グループ化間の最大距離差を有し、少なくとも部分的に、最大距離差の大きさに基づいて、フォールオフ領域のサイズを決定し、フォールオフ領域内のベースメッシュの頂点のための剛体変換を適用し、フォールオフ領域の外側のベースメッシュの頂点のための剛体変換をフェザリングするようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例70:ベースメッシュを標的メッシュに合致させるための方法であって、コンピューティング機器を使用して、それぞれ、複数の頂点を備える、ベースメッシュおよび標的メッシュを取得するステップと、コンピューティング機器を使用して、(i)ベースメッシュの頂点のうちの少なくともいくつかと標的メッシュとの間の距離差を決定し、(ii)第1の閾値を上回る距離差を有する、ベースメッシュ内の頂点のセットを識別し、(iii)剛体変換をベースメッシュ内の頂点のセットに適用し、頂点のセット内の頂点の距離差を低減させ、第1の変換されたベースメッシュを生産し、(iv)非剛体変形を第1の変換されたベースメッシュ内の頂点のセットに適用し、頂点のセット内の頂点の距離差をさらに低減させ、第2の変換されたベースメッシュを生産することによって、ベースメッシュを標的メッシュに合致させるステップと、コンピューティング機器を使用して、少なくとも、第2の変換されたベースメッシュに基づいて、ブレンドシェイプを提供するステップとを含む、方法。
実施例71:頂点のセットの形状は、剛体変換を適用する間、維持される、上記実施例のいずれかに記載の方法。
実施例72:頂点のセットの形状は、標的メッシュの対応する頂点の形状に合致するように改変される、上記実施例のいずれかに記載の方法。
実施例73:剛体変換を頂点のセットに適用するステップは、(1)剛体変換を頂点のセットの頂点のうちの少なくともいくつかに適用するステップと、(2)頂点のセットの頂点と標的メッシュの対応する頂点との間の距離差を決定するステップと、第1の収束基準が満たされるまで、動作(1)および(2)を反復するステップとを含む、上記実施例のいずれかに記載の方法。
実施例74:第1の収束基準は、決定された距離差における最大誤差が第1の閾値を下回るという基準を含む、上記実施例のいずれかに記載の方法。
実施例75:第1の収束基準は、動作(1)および(2)の反復の最大回数が完了されたという基準を含む、上記実施例のいずれかに記載の方法。
実施例76:非剛体変換を頂点のセットに適用するステップは、(a)非剛体変換を頂点のセットの頂点のうちの少なくともいくつかに適用するステップと、(b)頂点のセットの頂点と標的メッシュの対応する頂点との間の距離差を決定するステップと、第2の収束基準が満たされるまで、動作(a)および(b)を反復するステップとを含む、上記実施例のいずれかに記載の方法。
実施例77:第2の収束基準は、決定された距離差における最大誤差が第2の閾値を下回るという基準を含む、上記実施例のいずれかに記載の方法。
実施例78:第2の収束基準は、動作(a)および(b)の反復の最大回数が完了されたという基準を含む、上記実施例のいずれかに記載の方法。
実施例79:ベースメッシュを標的メッシュに合致させるためのシステムであって、それぞれ、複数の頂点を備える、ベースメッシュおよび標的メッシュを記憶するように構成される、非一過性コンピュータ記憶装置と、ベースメッシュを標的メッシュに合致させるように構成される、ハードウェアプロセッサであって、ハードウェアプロセッサは、非一過性コンピュータ記憶装置と通信し、(i)ベースメッシュの頂点のうちの少なくともいくつかと標的メッシュとの間の距離差を決定し、(ii)第1の閾値を上回る距離差を有する、ベースメッシュ内の頂点のセットを識別し、(iii)剛体変換をベースメッシュ内の頂点のセットに適用し、頂点のセット内の頂点の距離差を低減させ、第1の変換されたベースメッシュを生産し、(iv)非剛体変形を第1の変換されたベースメッシュ内の頂点のセットに適用し、頂点のセット内の頂点の距離差をさらに低減させ、第2の変換されたベースメッシュを生産し、(v)少なくとも、第2の変換されたベースメッシュに基づいて、ブレンドシェイプを提供するようにプログラムされる、ハードウェアプロセッサと、を備える、システム。
実施例80:ハードウェアプロセッサは、剛体変換を適用する間、頂点のセットの形状を維持するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例81:ハードウェアプロセッサは、頂点のセットの形状を改変し、標的メッシュの対応する頂点の形状に合致させるようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例82:ハードウェアプロセッサは、(1)剛体変換を頂点のセットの頂点のうちの少なくともいくつかに適用し、(2)頂点のセットの頂点と標的メッシュの対応する頂点との間の距離差を決定し、第1の収束基準が満たされるまで、動作(1)および(2)を反復するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例83:第1の収束基準は、決定された距離差における最大誤差が第1の閾値を下回るという基準を含む、上記実施例のいずれかに記載のシステム。
実施例84:第1の収束基準は、動作(1)および(2)の反復の最大回数が完了されたという基準を含む、上記実施例のいずれかに記載のシステム。
実施例85:ハードウェアプロセッサは、(a)非剛体変換を頂点のセットの頂点のうちの少なくともいくつかに適用し、(b)頂点のセットの頂点と標的メッシュの対応する頂点との間の距離差を決定し、第2の収束基準が満たされるまで、動作(a)および(b)を反復するようにプログラムされる、上記実施例のいずれかに記載のシステム。
実施例86:第2の収束基準は、決定された距離差における最大誤差が第2の閾値を下回るという基準を含む、上記実施例のいずれかに記載のシステム。
実施例87:第2の収束基準は、動作(a)および(b)の反復の最大回数が完了されたという基準を含む、上記実施例のいずれかに記載のシステム。
上記の実施例のいずれかは、組み合わせられることができる。加えて、上記の実施例のいずれかは、単一深度平面および/または1つ以上の可変深度平面(すなわち、経時的に変動する遠近調節キューを提供する、可変集束力を伴う1つ以上の要素)とともに実装されることができる。