概要
仮想アバタは、AR/VR/MR環境内の実際または架空の人物(または創造物または擬人化されたオブジェクト)の仮想表現であってもよい。例えば、その中で2人のAR/VR/MRユーザが相互に相互作用する、テレプレゼンスセッションの間、視認者は、別のユーザのアバタを視認者の環境内で知覚し、それによって、他のユーザの存在の有形感覚を視認者の環境内に作成することができる。アバタはまた、共有仮想環境内において、ユーザが、相互に相互作用し、ともに物事を行うための方法を提供することができる。例えば、オンラインクラスに出席する生徒は、仮想教室内の他の生徒または教師のアバタを知覚し、彼らと相互作用することができる。別の実施例として、AR/VR/MR環境内でゲームをプレーしているユーザは、ゲーム内の他のプレーヤのアバタを視認し、彼らと相互作用してもよい。
開示されるシステムおよび方法の実施形態は、改良されたアバタおよびウェアラブルシステムのユーザとユーザの環境内のアバタとの間のより現実的相互作用を提供し得る。本開示における実施例は、ヒト形状のアバタをアニメーション化することを説明するが、類似技法はまた、動物、架空の生物、オブジェクト等にも適用されることができる。故に、本明細書に説明される画像走査および整合または安定化技法の対象は、ヒト人物、動物、または他の変形可能オブジェクトまたはキャラクタであることができる。本明細書に説明される実施例の多くでは、対象は、人物(例えば、ヒトのように見えるアバタを作成するため)であるが、これは、例証のためのものであって、開示される方法およびシステムに関する限定ではない。さらに、本明細書に説明される技法の多くは、特に、動物が、画像間で静止したままであるように求めるコマンドを理解する(またはそれに従う)ことができないため、動物対象のために有利であり得る。
人物の説得力のあるデジタルアバタを作成することは、人物の3次元(3D)肖像を走査し、デジタル幾何学形状を作成することを要求し得る。画像走査は、例えば、対象を、対象を囲繞し、それに向けられている、複数のカメラ(例えば、60、80、120、またはそれを上回る)を備える、写真測量法捕捉ステージ内に設置することによって行われることができる。カメラは、相互に同期され、ある姿勢をとっている対象の3D走査に変換され得る、画像を捕捉することができる。画像(または対応する走査)は、本明細書では、画像(または対応する走査)が、人物の頭部の少なくとも一部を含み得るため、頭部走査と称され得る。頭部走査は、故に、例えば、人物の頭部の一部のみ(例えば、眼領域)、頭部全体、頭部および頸部、頭部、頸部、および上半身、または人物の全身を含んでもよい。頭部走査は、人物の環境からの背景特徴を含むことができる。
静的バーストに関しては、単一走査が、生成され得る。しかしながら、移動し、感情を表現し得る、アバタのためには、走査は、対象が、基本表情単位(例えば、笑顔、眉を顰める等)を含む、訓練姿勢をとっている間、行われ得る。これらの走査は、動いている人物の説得力のあるデジタルアバタを作成するために使用され得る、アニメーションリグ(下記に説明される)を構築するために使用される、訓練セットを作成するために使用されることができる。
本プロセスにおいて遭遇し得る、1つの難点は、整合(安定化とも称される)の問題である。人物の走査はそれぞれ、可能性として、走査イベント間の人物のわずかな移動に起因して、3D空間内に相互に対して現れ得る。走査を実施する間、そのようなわずかな移動を全体的に排除することは、困難または不可能であり得る。例えば、人物は、人物が訓練姿勢をとっているとき、頭部の複数の走査にわたって、任意の移動を伴わずに、その頭部を静止したまま保持することが不可能であり得る。これらの走査の使用を促進するために、これらのわずかな移動は、有利には、本開示の方法によって、決定される、低減される、最小限にされる、または排除されることができる。
わずかな移動(例えば、1mm未満)でさえ、これらのわずかな移動(例えば、全体としての頭部または身体の平行移動または回転)が、アニメーションリグ(例えば、アバタをアニメーション化するために使用されるブレンドシェイプ)の中に組み込まれるため、走査に基づく完成したアニメーションリグを不快な、不自然な、または不気味な見た目にさせ得る。例えば、2つの頭部走査が、精密(例えば、0.5mm未満)に整合されない場合、走査に基づく完成したリグから生成されたアバタと相互作用する、AR/MR/VRユーザは、アバタに関して何かが異常または不自然であることに明確に気づき得る。AR/MR/VRデバイスのユーザは、そのようなアバタと相互作用するとき、不気味な、異様な、または不快な感覚を体験し得る。オペレータは、頭部走査を手動で整合させることができるが、これは、走査またはフレームあたり0.5〜2.5時間もかかり得、多くのシナリオにおいて、対象のリグを作成するには長すぎ得る。さらに、オペレータは、走査間の対象の頭部を整合させるために、人的判断および個人化された技法を使用する。対照的に、本明細書に開示される方法の種々の実施形態は、デジタル走査に適用され得る、ルールのコンピュータ化されたセットに基づいて、自動化された(または少なくとも半自動化された)整合方法を提供する。結果は、同一であり得るが(例えば、走査のセット内の対象の頭部の整合または安定化)、コンピュータ化された技法は、個々の人的判断および経験に依拠する、オペレータの方法と異なるように実施される。
故に、開示されるシステムおよび技法の実施形態は、迅速かつ自動的に(または限定または低減されたヒト介入を伴って)、走査間の対象の頭部を整合させるために使用されることができ、これは、結果として生じるアバタのアニメーションを改良する。例えば、アバタは、その外観または移動において、完全にではないが、ほぼ完全にヒトである、アバタに対するヒト感情応答における降下を表す、いわゆる不気味の谷に陥る尤度を低減させるように、レンダリングされることができる。
ヒト対象に関して、頭蓋骨等の対象の剛体成分の位置が、走査間の対象の頭部の整合を決定するために使用され得る。しかしながら、頭蓋骨は、訓練姿勢中に表現される顔の表情の間、変形し得る、対象の皮膚によって隠されている。したがって、直接画像走査から頭蓋骨の位置を決定することは、困難である。皮膚特徴、鼻、耳、または前額等の隠されていない特徴の使用が、限定された成功または正確度を伴って使用されている。本明細書により詳細に説明されるように、頭蓋骨の位置は、頭蓋骨に対してほぼ剛性に固定される、隠されていない特徴(例えば、眼)に関する情報を使用することによって、決定されることができる。
いくつかの実装では、対象の眼の強膜(白色部分)から収集された走査データ(例えば、3Dデータ)が、眼球のモデル(例えば、球体または楕円体または任意の他の好適な形状)に適合されることができ、眼毎の中心点が、決定されることができる。これらの点は、対象の頭蓋骨に対してほぼ剛性であって、したがって、対象の画像走査間の頭部位置の剛体6自由度(DOF)変換を計算するために必要とされる、3つの点のうちの2つを提供することができる。6DOF変換は、3D座標空間内の身体の剛体成分(例えば、頭蓋骨)の移動、例えば、3つの空間平行移動(前後、上下、および左右等)および3つの角回転(ヨー、ピッチ、およびロール等)を考慮することができる。6DOF変換は、アフィン変換(例えば、回転、平行移動、スケール変化、剪断、または反射を表す、線形変換)を含むことができる。
眼位置を基準姿勢のそれらに整合させることによって、6DOF問題は、眼の中心点を通して通過する軸に沿った単一枢軸として特徴付けられる、1DOF問題に低減されることができる。最終枢軸は、例えば、皮膚ベースの技法またはオペレータ(例えば、アニメータ)による手動技法を使用して計算されることができる。いくつかの実施形態では、アフィン変換が、眼球の中心点および半径に基づいて、球体合致(中心点合致に加え)として決定されることができる。いくつかの実装では、アフィン変換は、整合のために、眼の強膜の暴露される部分の幾何学的形状を合致させることによって決定されることができる。
いくつかの実施形態では、各走査は、人物の頭部(例えば、頭蓋骨)の剛体成分の位置が、共通基準姿勢のものに合致するように、6自由度アフィン変換を使用して変換されることができる。共通基準姿勢は、人物のリラックス処理された中立表現であることができる。頭蓋骨は、実際には、可視ではないため、その位置は、走査内に存在する情報から推測されることができる。走査内の一次情報である、顔の皮膚は、走査間で変形し、多くの画像走査実装のために必要とされる品質のレベルにおいて変換を決定するために好適ではないものにする。
整合問題は、特に、(例えば、ヒト対象に関して)顔の可視部分の変形度に起因して、困難であり得る。それを越えて下層構造まで見えるようにすることは、熟練したオペレータにとってさえ困難であり得る。加えて、6自由度は、複雑な方法で相互作用し、平行移動または回転が所与の整合問題のために適切であるかどうかを確認することを困難にする。
6自由度アフィン変換が、2つ以上の走査(例えば、アニメーションリグを構築するために使用され得る、基準走査および1つ以上の付加的走査)間で剛体変換されている、3つのみの点を使用して計算されることができる。走査されたヒト頭部の場合、頭蓋骨が、姿勢の間、変形する、対象の皮膚によって隠されているため、走査内で直接可視である、そのような点は、存在しない。本明細書に開示される整合方法は、頭部走査内のユーザの眼の眼球中心をユーザの眼の強膜から推測し、推測される眼球中心を使用して、頭部走査を整合させることによる、眼球位置合わせに基づくことができる。
しかしながら、眼は、反射して輝くため、走査は、眼内の反射が異なるカメラに関して異なるため、雑音が多くなり得る。さらに、眼の反射率は、表面下散乱を有し得、これは、雑音を作成する。いくつかの実施形態では、本開示の眼球整合方法は、雑音が多い頭部走査を整合させるために使用されることができる。いくつかの実装では、眼球整合方法は、そのアバタが作成されている人物に、表面下散乱を排除することに役立ち得る、粉末化粧を行うように要求しない。結局のところ、眼に化粧をすることは不可能である。
いくつかの実施形態では、本明細書に開示される眼球整合方法は、少なくとも部分的に、これらの点が全て、姿勢の間、多かれ少なかれ移動するため、鼻梁、前額、耳の背後の点等の点を追跡することに基づく他の方法に優る1つ以上の利点を有する。いくつかの実装では、眼球整合方法は、直接、候補皮膚点を追跡することに基づく、整合技法と比較して、より高い正確度を有する。いくつかの実施形態では、眼球整合方法は、皮膚運動を予測し、したがって、頭蓋骨位置を推測する、統計的または機械学習された整合技法ほど煩雑ではなく、より少ない訓練(例えば、より低い分解能またはより低い品質走査を使用した訓練)を要求する。眼球整合方法は、本方法が制作の際に使用され得る前に、時間がかかる手動整合を要求し得ない。本開示の眼球整合方法は、実装が単純、正確、高速、または容易であり得る。いくつかの実施形態では、眼球整合方法を使用して決定された整合は、困難な6自由度(DOF)問題がよりトレース可能な1自由度のものに簡略化されているため、容易に修正または改良されることができる(例えば、オペレータまたはアニメータによって)。眼球整合方法は、コンピュータグラフィックおよび視覚的効果プロセス(例えば、映画生産のため)における付加的用途を有する。眼球整合方法は、頭部走査の完全に自動化または半自動化された整合(例えば、ある程度のオペレータ入力が、1DOF変換等のために使用される)のために使用されることができる。
本明細書に開示されるシステムおよび方法は、拡張、仮想、または複合現実、ゲーム、視覚的効果(VFx)、映画等を含む、種々の産業において使用されることができる。
(ウェアラブルシステムの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を備えることができる。ディスプレイレンズ230は、筐体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の中に投影することができる)に結合されることができる。レンダリングエンジン334はまた、それぞれ、リンク276および294を介して、例えば、センサ姿勢プロセッサ332および画像姿勢プロセッサ336等の他の処理ユニットと通信することができる。
カメラ324(例えば、小型赤外線カメラ)は、眼姿勢を追跡し、レンダリングおよびユーザ入力をサポートするために利用されてもよい。いくつかの例示的眼姿勢は、ユーザが見ている場所または合焦させている深度(眼の輻輳・開散運動(vergence)を用いて推定されてもよい)を含んでもよい。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号(参照することによってその全体として本明細書に組み込まれる)に説明される。
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。オブジェクトの視認者は、輻輳・開散運動と遠近調節(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に対応してもよく、図4は、そのウェアラブルシステム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は、単独で、または組み合わせて、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は、アバタを移動させる、メッシュを変形させる等によって、アバタをアニメーション化するために使用されることができる。
(ユーザの環境をマッピングする実施例)
図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最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク(畳み込みまたは深層ニューラルネットワークを含む)、または他の教師あり/教師なしモデル等)等を含む。これらのコンピュータビジョンアルゴリズムの一部または全部は、下記に説明される眼球位置合わせ技法(例えば、図11A−17参照)において、例えば、強膜を対象の眼の走査から識別するために使用されることができる。
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、HMDによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、教師ありまたは教師なし機械学習アルゴリズムを含むことができ、回帰アルゴリズム(例えば、通常の最小2乗回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル量子化等)、決定ツリーアルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタリングアルゴリズム(例えば、k−平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、Perceptron等)、深層学習アルゴリズム(例えば、Deep Boltzmann Machine、すなわち、深層ニューラルネットワーク等)、次元削減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、Stacked Gneralization等)、または他の機械学習アルゴリズムを含む。いくつかの実施形態では、個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ(例えば、テレプレゼンスセッション内の特定のユーザ)、データセット(例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット)、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。いくつかの実施形態では、ウェアラブルHMDは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用することを含んでもよい。これらの機械学習アルゴリズムの一部または全部は、下記に説明される眼球位置合わせ技法(例えば、図11A−17参照)において、例えば、強膜を対象の眼の走査から識別するために使用されることができる。
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置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に示される遠隔処理モジュール270の実施形態であってもよい。遠隔処理モジュール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内でアバタをリアルタイムでアニメーション化する。
(対象の頭部および眼の例示的幾何学形状)
いくつかの実装では、本方法は、隠されている剛体形状に実質的に固定された相対的場所に少なくとも1つの点を有する、隠されていないオブジェクトを位置特定することによって(例えば、対象の眼)、隠されている剛体形状(例えば、対象の頭蓋骨)を位置特定するステップを含むことができる。本方法は、眼を固定された基準点として使用して、対象の頭部の複数の走査を整合させるステップを含むことができる。本方法は、幾何学的形状を固定された基準点として使用して、強膜の可視部分を幾何学的形状(例えば、球体または楕円体または任意の他の好適な形状)に適合させることによって、対象の頭部の複数の走査を整合させるステップを含むことができる。いくつかの実装では、幾何学的形状と眼の走査の手動6DOF適合の問題は、少なくとも5DOFを自動化することによって提供され、したがって、最大で1DOFのみが、手動で要求される。
ユーザの頭部走査は、人物の基準頭部姿勢を含む、基準頭部走査に整合されることができる。例えば、基準頭部走査は、対象のリラックス処理された中立表現を含むことができる。図11Aは、そのリグが生成されている、対象の例示的頭部1104aを図式的に図示する。いくつかの実施形態では、各頭部走査は、人物の頭部の剛体成分(例えば、図11Bでは、頭蓋骨1104b)の位置が基準姿勢のものに合致するように、6自由度アフィン変換を使用して変換されることができる。頭蓋骨1104bが、実際には可視ではないため、その位置は、対象の頭部1104aの走査内に存在する情報から推測されることができる。走査内の一次情報を提供する、対象の顔の皮膚は、走査間で変形し、アバタのためのリグを生成するために必要とされる品質のレベルにおいて変換を決定するためのその使用を不適正なものにする。いくつかの実施形態では、基準頭部走査は、走査の残りに関する比較のための基礎として機能する、または基準走査として指定または標識される、複数の走査からの単一走査であることができる。
6自由度アフィン変換は、2つ以上の走査(例えば、アニメーションリグを構築するために使用され得る、基準走査および1つ以上の付加的走査)間で剛体変換されている、3つ以上の点を使用して、頭部走査間で計算されることができる。走査されたヒト頭部1104aの場合、頭蓋骨1104bが顔の皮膚によって被覆されているため、走査内で直接可視である、そのような点は、存在しない。本明細書に開示される整合方法は、対象の眼球1108a、1108bの中心を頭部走査内の対象の眼の強膜1112a、1112bから推測し、推測される眼球中心を使用して、頭部走査を整合させることによる、眼球位置合わせに基づくことができる。眼の眼球中心は、眼球の位置が眼窩1116a、1116bに対して比較的に一定であるため、頭蓋骨1104bに対して比較的に一定であることができる。
図11Aおよび11Bは、その中に対象の頭部1104aの頭部走査が生成され得る、座標系1120(例えば、世界座標系またはスキャナ座標系)を示す。本座標系では、頭部走査(例えば、基準頭部走査)内の対象の頭部1104aの長さは、y−軸1120yの方向と略平行であることができる。頭部走査内のユーザの頭部1104aの幅は、x−軸1120xの方向と略平行であることができる。頭部走査内のユーザの頭部1104bの深度は、z−軸1120zの方向と略平行であることができる。他の好適な座標系および整合方法が、使用されてもよい。
(例示的眼、眼走査、および候補点選択)
図12は、眼瞼1204、強膜1112(眼の「白眼」)、虹彩1212、および瞳孔1216を伴う、眼球1108a、1108bの眼1200を図式的に図示する。曲線1216aは、瞳孔1216と虹彩1212との間の瞳孔境界を示し、曲線1212aは、虹彩1212と強膜1112との間の辺縁境界を示す。眼瞼1204は、上側眼瞼1204aおよび下側眼瞼1204bを含む。眼1200の静置位置における眼1200の眼姿勢1220は、図12に示される眼の平面と略垂直であることができる。
図13は、対象の強膜1303および瞳孔1302の一部を示す、眼走査1300の実施例を示す。眼走査1300は、反射して輝くまたは光沢のある表面上でさえ、高精度(例えば、サブミリメートル精度)および十分な精細度を有することができる。依然として、雑音が多いが、眼の表面の多くが、眼のデジタル走査1300内に保存されることができる。候補点(候補頂点とも称される)が、各眼の強膜のために選択されることができ、図13では、白色ドット(例えば、点1304a、1304b)として示される。いくつかの実施形態では、眼走査1300内の候補点(例えば、点1304a、1304b)は、1つ以上のコンピュータビジョン技法(例えば、機械学習に基づくコンピュータビジョン技法)を使用して、手動で、またはある他の方式において、選択されることができる。例えば、眼走査1300内の候補点は、眼走査1300内の眼の辺縁境界1212aおよび眼瞼1204a、1204bの形状に基づいて決定されることができる。眼の辺縁境界1212aおよび眼瞼1204a、1204bは、1つ以上のコンピュータビジョン技法(例えば、眼走査1300の二次導関数またはより高次の導関数等の導関数に基づくコンピュータビジョン技法)を使用して決定されることができる。雑音は、これらの領域内では一般的であるため、選択は、限定された品質であると仮定され得、瞳孔、眼瞼、涙丘等からの誤対応を含み得る。いくつかの実施形態では、眼走査は、点群、メッシュ、赤緑青色深度(RGB−D)画像、またはオブジェクトのxyz座標の任意のグループを含む。
(例示的眼適合プロシージャ)
図14は、頭部走査内の対象の頭部の眼の中心点および頭部走査内のユーザの頭部の第3の点を決定する、例示的プロセスを図式的に図示する。眼球1108a、1108bのモデルが、候補点(例えば、図13を参照して説明される候補点1304a、1304b)に適合されることができる。モデルは、球体または楕円体等の幾何学的形状に基づくことができる。対象の眼の候補点を適合させるステップは、各候補点から球体(または楕円体または幾何学的形状全般)の表面までの距離を低減または最小限にする、中心位置および半径(または楕円体に基づく眼球モデルのための半径)を決定するステップを含むことができる。選択された候補点は、典型的には、誤対応を含み、雑音が多くあり得るため、データは、通常、配布され得ない。いくつかの実施形態では、各候補点から幾何学的形状の表面までの距離の最小二乗を低減または最小限にする代わりに、よりロバストな誤差メトリックが、適合の間、誤対応および雑音効果を最小限にするために使用されることができる。例えば、ロバスト回帰、M推定、Theil−Sen推定、ランダムサンプル共有項(RANSAC)技法が、幾何学的眼形状モデルを眼走査データに適合させるために使用されることができる。
眼走査内の眼1108a、1108bの候補点を眼球モデルに適合させるステップは、複数のアクションを含む、各ステップを用いた、反復間引を含むことができる。各反復後、誤対応である可能性が高く、眼球の最も精密な場所および半径を与えるであろう、実際の強膜領域の一部である可能性が低い、候補点を決定するために使用される、メトリックが、算出されることができる。可能性が高い誤対応は、適合プロシージャの反復の間、間引かれることができる。
いくつかの実装では、以下のアクションが、眼球モデルを頭部走査の候補点に適合させるために実施されることができる。候補点を適合させるステップは、下記の方程式1を含むことができる。反復間引は、眼球モデルの収束に到達する(例えば、反復間の誤差統計における差異が、収束閾値を下回って減少する、または反復の最大回数)まで、下記の方程式1および2を繰り返すステップを含むことができる。
(1)誤差統計を低減または最小限にする。誤差統計は、眼球モデルの位置および半径に基づくことができる。いくつかの実施形態では、誤差統計は、シグモイド関数に基づく。例示的誤差統計が、下記の方程式[1]に示される。
式中、xは、予期される半径と比較した、眼球モデル(例えば、球状眼球モデル)の中心までの距離の残余誤差を示し、σは、シグモイド関数tanhのためのスケーリングパラメータを示し、αは、tanh関数と線形最小二乗との間の調整を可能にし、tanhは、双曲線接線(範囲−∞〜∞にわたって−1.0と+1.0との間で変動し、約x=0の近似線形である、シグモイド関数)を示す。本関数は、大残差が表面の近傍にある大部分に集中しないように、誤差の上限が定められることを可能にする。いくつかの実施形態では、σは、0.005であって、αは、0.9である。
(2)適合が実施された後、誤対応を決定し、これは、間引かれることができる。いくつかの実施形態では、間引は、中央値ベースの方法を使用して実施されることができ、これは、間引くときの選択バイアスに起因して、平均ベースの方法より良好に性能を発揮することができる。
眼適合は、基準走査に関して、他の走査と比較して、若干異なるように行われることができる。基準走査に関して、本明細書に開示される方法は、異なる対象に関して異なるであろう、眼の位置1124a、1124bおよび眼の形状の正しいモデル(例えば、半径または複数の半径)を決定するように試みることができる。基準走査の適合の間、眼球モデルの半径は、(例えば、自由に)変動されることを可能にされることができる。付加的走査に関して、半径は、最初は、基準走査におけるように、(例えば、自由に)変動されることを可能にされることができるが、半径は、間引の1回以上の反復後、基準走査値に合致するように制限され得る。そのようなプロセスは、眼瞼自体が眼の表面を歪曲させる、眼瞼が緊張している場合(例えば、対象が眼を細める場合)、問題となり得る、眼球自体の非剛体性を考慮することができる。
(走査間のアフィン変換を計算する)
いったん眼位置1124a、1124bが決定されると、アフィン(例えば、剛体)変換が、別個の走査内の眼を整合させるために計算されることができる。2つの走査間の頭部のアフィン変換を決定するために、3つ以上の点が、必要とされる。頭部走査内には、ユーザの眼の2つのみの眼球中心1124a、1124bが存在するため、第3の点が、推測または作成されることができる。例えば、第3の点は、2つの眼点とy−軸(例えば、図11Aおよび11Bを参照して説明されるy−軸1120y)との間に形成される、軸1128のクロス積に基づくことができる。クロス積は、それに沿って第3の点を設置すべきベクトル1132を決定するために使用されることができる。例えば、ユーザの鼻梁のある場所にあり得る、眼中心を接続する線分1128の中心点から、ある距離(例えば、1cm)だけ前方にある、本ベクトル1132に沿った点1136が、選択されることができる。y−軸1120yは、例えば、初期走査を実施するとき、対象が走査ステージ内に適切に着座されている場合、眼軸1128と略垂直であることができる。本第3の点を用いて、初期アフィン整合が、実施されることができ、これは、眼中心を通して通過する軸に沿った単一DOF枢軸を除いて全てのDOFを除去する。
(最終変換を調節する)
残りの1DOF整合は、種々の技法によって決定されることができる。例えば、本方法は、皮膚特徴を使用した皮膚ベースの技法を適用し、変換の最終DOFを決定することができる。いくつかの方法では、手動(例えば、オペレータ)入力が、最終DOFのために使用される。例えば、対象上の追跡可能点(毛穴またはそばかすを含む、人工追跡点または顔の詳細等)を使用して、眼中心を通して通過する軸に沿った最終DOF枢軸が、変換に適用される点/表面最小限化技法によって決定されることができる。
いくつかのインスタンスでは(例えば、眼が狭くなる、眼を細めるような場合)、y−軸1120yに沿った眼中心の位置は、不安定になり得る。片眼または片眼走査上の、例えば、0.5mm程度のわずかである、y−軸1120yに沿った眼中心のそのような不安定な位置から生じた整合における誤差は、(z−軸1120z上の)眼間の中心点を中心とする回転として可視となり得る。そのようなわずかな誤差は、オペレータ(例えば、訓練されたアニメータ)に可視となり得る。本明細書に開示される整合方法は、y−軸1120yに沿った眼位置を調節し、アフィン変換を再計算することによって、そのような(可能性として考えられる)不安定性を考慮または決定することができる。いくつかの実施形態では、本方法は、独立した右および左眼球1108a、1108bのためのy−軸1120y平行移動調節およびx−軸1120x回転調節のため等、最終調節のための3つの制御を含むことができる(例えば、皮膚標的が容認不可能に変形する状況に関して)。ある場合には、y−軸1120y測定における誤差が、生じ得、剛体変換をz−軸1120zを中心として回転させることによって補償され得る。本プロセスは、困難度が低減され、全くまたは殆ど手動介入を要求し得ない(例えば、数秒のみが、最終調節を行うために、オペレータによって要求され得る)。
(ユーザの頭部の姿勢を決定する例示的プロセス)
図15は、対象の眼球モデルに基づいて、対象の頭部の姿勢を決定する、例示的プロセス1500のフロー図である。ハードウェアコンピューティングシステムが、プロセス1500を実装することができる。ある場合には、対象の画像を取得する、写真測量捕捉ステージが、プロセス1500を実施する、ハードウェアコンピューティングシステムと有線または無線通信する。他の実装では、図6Aを参照して説明されるアバタ処理およびレンダリングシステム690または図6Bを参照して説明されるアバタ自動スケーラ692が、プロセス1500を実施することができる。
ブロック1504では、コンピューティングシステムは、対象の頭部走査を受信することができる。対象の頭部走査は、対象の各眼の眼走査を含むことができる。頭部走査は、対象の基準頭部走査、または図1600を参照して下記に説明される方法1600を使用して、基準頭部走査(または対象のリグまたは対象のデジタル表現)に整合され得る、対象の別の頭部走査であることができる。頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含むことができる。
ブロック1508では、コンピューティングシステムは、頭部走査内の対象の各眼の強膜のための候補点を決定することができる。いくつかの実施形態では、眼走査内の候補点(例えば、図13を参照して説明される、点1304a、1304b)が、1つ以上のコンピュータビジョン技法を使用して(例えば、機械学習に基づくコンピュータビジョン技法)、手動で、またはある他の方式において、決定されることができる。例えば、眼走査内の候補点は、眼走査内の眼の辺縁または瞳孔境界(例えば、図12を参照して説明される辺縁境界1212aまたは瞳孔境界1216a)または眼瞼(例えば、図12を参照して説明される眼瞼1204a、1204b)の形状に基づいて、決定されることができる。眼の辺縁または瞳孔境界または眼瞼の形状または位置は、1つ以上のコンピュータビジョン技法(例えば、眼走査の二次導関数またはより高次の導関数等の導関数に基づくコンピュータビジョン技法、曲線適合、縁検出、ウェーブレット技法、または他の虹彩または瞳孔セグメント化技法)を使用して決定されることができる。
ブロック1512では、コンピューティングシステムは、眼球モデルを各眼の強膜の候補点に適合させることができる。例えば、基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるステップは、(1)対象の各眼球の眼球モデルの半径と、(2)対象の眼球の複数の候補点の候補点と眼球の眼球モデルの中心との間の距離とに基づいて、誤差統計を低減または最小限にするステップを含むことができる。別の実施例として、眼球モデルを対象の各眼の強膜の複数の候補点に適合させるステップは、(1)対象の各眼球の眼球モデルの半径と、(2)対象の各眼球の複数の候補点の各候補点と各眼球の眼球モデルの中心との間の平均距離とに基づいて、誤差統計を低減または最小限にするステップを含むことができる。誤差統計は、範囲−∞〜+∞にわたって−1.0と+1.0との間で変動し得る。誤差統計は、約ゼロの近似線形であることができ、誤対応の影響を低減させるように境界され得る。例えば、誤差統計は、tanh等のシグモイド関数(例えば、上記の方程式[1])に基づくことができる。眼球モデルを各眼の強膜の候補点に適合させるとき、眼球モデルの半径(または複数の半径)は、固定され得る、または変動し得る(例えば、プロセス1500全体の間、またはプロセス1500の一部の間)。
ブロック1516では、コンピューティングシステムは、ブロック1508において決定された候補点の1つ以上の誤対応候補点を決定および除去することができる。眼球モデル内の対象の各眼球の強膜の候補点の1つ以上の誤対応候補点は、複数の基準候補点の中央値(または平均)に基づいて決定されることができる。候補誤対応点は、分布のある数の標準偏差(例えば、2、3、5、7、またはそれを上回る標準偏差)を上回って点の分布の平均と異なる、点と識別され得る。
プロセス1500は、ブロック1512における、眼球モデルと各眼の強膜の候補点の反復適合と、ブロック1516における、眼球モデルと候補点の適合が収束するまで、誤対応候補点を決定および除去するステップとを含むことができる。例えば、適合が、決定ブロック1520において収束しない場合、コンピューティングシステムは、ブロック1512に進み、更新された眼球モデルを、誤対応候補点が除去された各眼の強膜の候補点に適合させることができる。適合が、決定ブロック1520において収束する場合、方法は、ブロック1524に進むことができる。ブロック1520では、収束は、例えば、反復間の誤差統計における差異が、収束閾値を下回って減少した場合、または最大数の反復の最大回数に到達した場合、決定されることができる。
ブロック1524では、コンピューティングシステムは、眼球モデルに基づいて、対象の各眼球の中心点を決定することができる。眼球モデルのパラメータは、球体、楕円体、またはそれらの組み合わせ等の幾何学的形状を含むことができる。基準眼球モデルのパラメータは、少なくとも1つの半径を含むことができる。例えば、眼球モデルは、球状眼球モデルのための1つの半径を含むことができる。別の実施例として、眼球モデルは、楕円形眼球モデルのための2つの半径(例えば、長半径および短半径)を含むことができる。さらに別の実施例として、眼球モデルは、楕円体眼球モデルのための3つの半径(例えば、3つの直交方向に沿った長半径および短半径)を含むことができる。眼球モデルのパラメータは、幾何学的形状のための中心点を含むことができる。各眼球の中心点は、各眼球モデルの中心点であることができる。眼球モデルは、例えば、二次表面の一部、旋回表面等、眼球に適合するための任意のタイプの湾曲表面を含むことができ、眼球モデルは、その形状または配向を説明するための任意の好適な数のパラメータ(例えば、中心点、1、2、3、またはそれを上回る半径、楕円率等)を含むことができる。
ブロック1528では、コンピューティングシステムは、ブロック1528において決定された各眼球の中心点および座標系の軸(例えば、図14を参照して説明されるy−軸1120y)に基づいて、対象の頭部の推測される第3の点を決定することができる。対象の頭部の姿勢の表現は、ブロック1528において決定された各眼球の中心点と、ブロック1528において決定された推測される第3の点とを含むことができる。頭部走査内の推測される第3の点を決定するステップは、対象の各眼球の中心点に基づいて、頭部走査内の推測される第3の点を決定するステップを含むことができる。頭部走査内の推測される第3の点を決定するステップは、(1)対象の各眼球の中心点(例えば、図14を参照して説明される中心点1124a、1124b)間に形成される軸と、(2)基準頭部走査の座標系の軸(例えば、図14を参照して説明されるy−軸1120y)との基準クロス積を決定するステップを含むことができる。推測される第3の点は、クロス積(例えば、図14を参照して説明されるクロス積1132)上にあることができる。推測される第3の点は、図14を参照して説明されるクロス積1132上の推測される第3の点1136等、クロス積上で対象の頭部から離れることができる。
(頭部走査を整合させる例示的プロセス)
図16は、対象の頭部走査を整合させる、例示的プロセス1600のフロー図である。ハードウェアコンピューティングシステムが、プロセス1600を実装することができる。ある場合には、対象の画像を取得する、写真測量捕捉ステージが、プロセス1600を実施する、ハードウェアコンピューティングシステムと有線または無線通信する。他の実装では、図6Aを参照して説明されるアバタ処理およびレンダリングシステム690または図6Bを参照して説明されるアバタ自動スケーラ692が、プロセス1600を実施することができる。
ブロック1604では、コンピューティングシステムは、対象の頭部の基準頭部走査を受信することができる。基準頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含むことができる。いくつかの実施形態では、基準頭部走査内の対象の頭部の姿勢は、座標系の軸(例えば、図14を参照して説明されるy−軸1120y)の方向に近似的にあることができる。
ブロック1608では、コンピューティングシステムは、基準頭部走査内の対象の各眼の強膜のための候補点に基づいて、基準頭部走査内の対象の各眼球の中心点および推測される第3の点を決定することができる。コンピューティングシステムは、図15を参照して説明されるプロセス1500を使用して、基準頭部内の対象の各眼球の中心点および推測される第3の点を決定することができる。基準走査の適合の間、眼球モデルの半径は、(例えば、解剖学的に許容可能範囲内で自由に)変動されることを可能にされることができる。
ブロック1612では、コンピューティングシステムは、対象の第2の基準頭部走査を受信することができる。第2の頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含むことができる。基準頭部走査および第2の基準頭部走査は、同一タイプの頭部走査である(例えば、両頭部走査は、RGB−D走査であることができる)、または異なるタイプの頭部走査である(例えば、一方の頭部走査は、点群を含むことができ、他方の頭部走査は、メッシュを含むことができる)。
ブロック1616では、コンピューティングシステムは、第2の頭部走査内の対象の各眼の強膜のための候補点に基づいて、第2の頭部走査内の対象の各眼球の中心点および推測される第3の点を決定することができる。コンピューティングシステムは、図15を参照して説明されるプロセス1500を使用して、第2の頭部内の対象の各眼球の中心点および推測される第3の点を決定することができる。第2の走査(または他の付加的走査)に関して、眼球モデルの半径は、最初は、基準走査におけるように、(例えば、自由に)変動することを可能にされることができるが、半径は、適合させ、誤対応候補点を除去する、1回以上の反復後、基準走査値に合致するように制限され得る。
ブロック1620では、コンピューティングシステムは、ブロック1616において決定された第2の頭部走査内の各眼球の中心点および推測される第3の点と、ブロック1608において決定された基準頭部走査内の対応する点とに基づいて、第2の頭部走査と基準頭部走査との間のアフィン変換を決定することができる。いくつかの実施形態では、コンピューティングシステムは、アフィン変換を少なくとも第2の頭部走査内の対象の頭部上で実施し、第2の頭部走査内の対象のアフィン変換された頭部を生成することができる。種々の実施形態では、アフィン変換は、対象の頭部のみに適用されることができる、または走査全体に適用されることができる。コンピューティングシステムは、対象の頭部上の追跡可能点を使用して、基準頭部走査内の対象の頭部に対する第2の頭部走査内の対象のアフィン変換された第2の頭部の枢軸を決定することができる。例えば、コンピューティングシステムは、対象のアフィン変換された第2の頭部上の追跡可能点と基準頭部走査内の対象の頭部上の追跡可能点との間の距離を最小限にすることができる。別の実施例として、コンピューティングシステムは、対象のアフィン変換された第2の頭部上の追跡可能点と基準頭部走査内の対象の頭部上の追跡可能点の周囲の表面との間の距離を最小限にすることができる。いくつかの実施形態では、コンピューティングシステムは、対象の頭部上の追跡可能点を使用して、基準頭部走査内の対象の頭部に対する第2の頭部走査内の対象のアフィン変換された第2の頭部の枢軸を受信することができる。いくつかの実施形態では、コンピューティングシステムは、第2の頭部走査内の対象の各眼球の平行移動調節、第2の頭部走査内の対象の眼球の回転調節、またはそれらの任意の組み合わせを受信することができる。
ブロック1624では、コンピューティングシステムは、対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのリグを生成し、アフィン変換に基づいて、対象のアバタの修正されたリグを生成することができる。代替として、コンピューティングシステムは、対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのデジタル表現を生成し、アフィン変換に基づいて、対象のアバタの修正されたデジタル表現を生成することができる。例えば、コンピューティングシステムは、アフィン変換に基づいて、眼球をデジタルパペット内に適合させることができる。
図17は、隠されている部分および隠されていない部分を含む、オブジェクトの走査を整合させる、例示的プロセス1700のフロー図である。例えば、オブジェクトは、走査されている対象の頭部を含んでもよく、隠されている部分は、頭蓋骨を含んでもよく、隠されていない部分は、対象の片眼または両眼を含んでもよい。オブジェクトは、少なくとも部分的に、変形可能であり得、例えば、対象の皮膚は、頭蓋骨にわたって配置され、皮膚は、対象が、走査されている間、ある姿勢をとる(例えば、笑顔、眉を顰める、笑う、驚きを示す等)につれて変形する。方法1700は、隠されていない部分の少なくとも1つの点が、剛体の隠されている部分と固定された関係にあるため、隠されていない部分(例えば、眼)の走査を利用して、剛体の隠されている部分(例えば、頭蓋骨)の位置または配向を決定することができる。剛体の隠されている部分は、直接、観察可能ではない(例えば、走査は、直接、対象の頭蓋骨を示さない)ため、方法1700は、したがって、隠されていない部分の位置または配向を使用して、剛体の隠されている部分の位置または配向を決定し、それによって、走査間のオブジェクトの移動を補正する、変換(例えば、アフィン変換)を決定することができる。
図17に示される実施例では、ブロック1704において、方法1700は、隠されていないオブジェクトの走査、例えば、対象の眼の走査を含む、頭部走査を受信する。ブロック1708では、本方法は、隠されている剛体オブジェクトとの固定された関係を持つ、隠されていないオブジェクトの1つ以上の点を決定する。例えば、図15および16を参照して上記に説明されるように、本方法は、眼の強膜の測定を利用して、走査内のオブジェクト位置間の変換を見出すために使用可能な2つの眼中心を決定してもよい。ブロック1712では、本方法は、走査間のオブジェクトの移動を補償する、アフィン変換を決定する。ブロック1716では、本方法は、アフィン変換を利用して、異なる走査間のオブジェクトの位置を整合させる、位置合わせする、または安定化させることができる。
方法1700のいくつかの実施形態では、ブロック1712において決定されたアフィン変換は、6DOF変換を含む。いくつかのそのような実施形態では、隠されていない部分の測定は、6DOFのうちの5つの決定を可能にし得、本方法は、オブジェクトの変形可能部分の測定(例えば、皮膚の測定)を介して、最終DOFを決定する。加えて、または代替として、方法1700は、最終DOFに関連するオペレータ入力を受け取ってもよい。
ハードウェアコンピューティングシステムが、プロセス1700を実装することができる。ある場合には、対象の画像を取得する、写真測量捕捉ステージが、プロセス1700を実施する、ハードウェアコンピューティングシステムと有線または無線通信する。他の実装では、図6Aを参照して説明されるアバタ処理およびレンダリングシステム690または図6Bを参照して説明されるアバタ自動スケーラ692が、プロセス1700を実施することができる。
(付加的側面)
いくつかの実施形態では、眼球整合方法を使用して決定された頭部走査整合は、加えて、または代替として、瞳孔または虹彩を追跡情報(例えば、虹彩または瞳孔の外側縁を決定し、球体または楕円体上の虹彩または瞳孔の外側縁の位置を決定する)として使用して、改良されることができる。いくつかの実装では、頭部走査整合は、上側歯(典型的には、大部分の姿勢において不可視である)等の頭蓋骨の空間に(例えば、いくつかの実装では、絶対的に)マッピングされる、頭部の解剖学的構造に基づいて、または対象の歯上に設置された小型無線伝送機から、さらに改良されることができる。他の実施形態では、頭部走査整合は、(手動で安定化される、訓練データを要求するか、または安定化に続いて、調節を要求するかのいずれかであり得る)キャラクタアニメーションの目的のために顔上に設置された追跡マーカの機械学習方法を用いて、微調整されることができる。機械学習方法のための訓練データの生成は、勾配転写技法を使用して自動化されることができる。
いくつかの実施形態では、本明細書に開示される眼球整合方法は、眼球を対象のデジタルパペットの内側に自動的に設置するために使用されることができ、これは、デジタルパペットの眼球球体が、全くヒト介入を伴わずに、または低減されたヒト介入を伴って、移動されることを可能にする。他の実施形態では、眼球整合方法は、3次元(3D)走査を3D走査に、3D走査をリグに、および/または3D走査をデジタル表現に整合させるために使用されることができる。
本明細書および付随の図に説明される技術は、以下の非限定的側面のうちの1つ以上のものを介して実装されることができる。
1.対象の頭部走査を整合させるためのシステムであって、対象の頭部の少なくとも一部の基準頭部走査と、対象の頭部の第2の頭部走査とを記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、実行可能命令によって、対象の基準頭部走査を受信し、基準頭部走査内の対象の各眼球の強膜の複数の基準候補点に基づいて、基準頭部走査内の対象の各眼球の基準中心点および基準推測点を決定し、対象の第2の頭部走査を受信し、第2の頭部走査内の対象の各眼球の強膜の複数の第2の候補点に基づいて、第2の頭部走査内の対象の各眼球の第2の中心点および第2の推測点を決定し、第2の頭部走査内の対象の各眼球の第2の中心点および第2の推測点および基準頭部走査内の対応する点に基づいて、第2の頭部走査から基準頭部走査へのアフィン変換を決定し、アフィン変換を少なくとも第2の頭部走査内の対象の頭部上で実施し、第2の頭部走査内の対象のアフィン変換された頭部を生成するようにプログラムされる、ハードウェアプロセッサとを備える、システム。
2.基準頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含む、側面1に記載のシステム。
3.対象の各眼球の基準中心点を決定するために、ハードウェアプロセッサは、対象の基準頭部走査内の対象の各眼球の強膜の複数の基準候補点を決定するようにプログラムされる、側面1−2のいずれか1項に記載のシステム。
4.対象の各眼球の基準中心点を決定するために、ハードウェアプロセッサはさらに、基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させ、対象の各眼球の基準眼球モデルに基づいて、各眼球の基準中心点を決定するようにプログラムされる、側面3に記載のシステム。
5.基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるために、ハードウェアプロセッサは、対象の第1の眼球の基準眼球モデルの半径と、対象の第1の眼球の複数の基準候補点の基準候補点と第1の眼球の基準眼球モデルの中心との間の距離とに基づいて、第1の誤差統計を最小限にするようにプログラムされる、側面4に記載のシステム。
6.基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるために、ハードウェアプロセッサは、対象の第1の眼球の基準眼球モデルの半径と、対象の第1の眼球の複数の基準候補点の各基準候補点と第1の眼球の基準眼球モデルの中心との間の平均距離とに基づいて、第1の誤差統計を最小限にするようにプログラムされる、側面4に記載のシステム。
7.第1の誤差統計は、範囲−∞〜∞にわたって−1.0と1.0との間で変動する、側面5−6のいずれか1項に記載のシステム。
8.第1の誤差統計は、約ゼロ誤差の近似線形である、側面5−7のいずれか1項に記載のシステム。
9.第1の誤差統計は、少なくとも部分的に、シグモイド関数に基づく、側面5−8のいずれか1項に記載のシステム。
10.基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるために、ハードウェアプロセッサは、基準眼球モデルに対する対象の各眼球の強膜の複数の基準候補点の1つ以上の基準誤対応候補点を決定し、基準誤対応候補点を対象の各眼球の強膜の複数の基準候補点から除去し、更新された眼球モデルを基準誤対応候補点が除去された対象の各眼球の強膜の複数の基準候補点に適合させるようにプログラムされる、側面4−9のいずれか1項に記載のシステム。
11.1つ以上の基準誤対応候補点を決定するために、ハードウェアプロセッサは、複数の基準候補点の中央値に基づいて、基準眼球モデル内の対象の各眼球の強膜の複数の基準候補点の1つ以上の基準誤対応候補点を決定するようにプログラムされる、側面10に記載のシステム。
12.基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるために、ハードウェアプロセッサは、基準眼球モデルと複数の基準候補点の適合が収束するまで、基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に反復的に適合させるようにプログラムされる、側面4−9のいずれか1項に記載のシステム。
13.基準頭部走査内の基準推測点を決定するために、ハードウェアプロセッサは、対象の各眼球の基準中心点に基づいて、基準頭部走査内の基準推測点を決定するようにプログラムされる、側面1−12のいずれか1項に記載のシステム。
14.基準頭部走査内の基準推測点を決定するために、ハードウェアプロセッサはさらに、対象の各眼球の基準中心点間に形成される軸と、基準頭部走査の座標系の軸との基準クロス積を決定するようにプログラムされる、側面13に記載のシステム。
15.基準推測点は、基準クロス積上にある、側面14に記載のシステム。
16.基準推測点は、基準クロス積上で対象の頭部から離れる、側面15に記載のシステム。
17.座標系の軸は、座標系のy−軸であって、y−軸は、対象の頭部の長さに沿って、例えば、顎領域と平行である、または眼領域に向かって上向きにそこから延在する線に沿ってあってもよい、側面14−16のいずれか1項に記載のシステム。
18.基準頭部走査内の対象の頭部の姿勢は、近似的に、座標系の軸の方向にある、側面14−17のいずれか1項に記載のシステム。
19.基準眼球モデルのパラメータは、幾何学的形状を含む、側面4−18のいずれか1項に記載のシステム。
20.幾何学的形状は、球体、楕円体、またはそれらの組み合わせを含む、側面19に記載のシステム。
21.基準眼球モデルのパラメータは、少なくとも1つの半径を含む、側面19−20のいずれか1項に記載のシステム。
22.基準眼球モデルを対象の各眼球の強膜の基準候補点に適合させるために、ハードウェアプロセッサは、基準眼球モデルのパラメータの少なくとも1つの半径を調節するようにプログラムされる、側面21に記載のシステム。
23.第2の頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含む、側面1−22のいずれか1項に記載のシステム。
24.対象の各眼球の第2の中心点を決定するために、ハードウェアプロセッサは、対象の基準頭部走査内の対象の各眼球の強膜の複数の第2の候補点を決定するようにプログラムされる、側面1−23のいずれか1項に記載のシステム。
25.対象の各眼球の第2の中心点を決定するために、ハードウェアプロセッサはさらに、基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させ、複数の第2の候補点に適合される対象の各眼球の基準眼球モデルに基づいて、各眼球モデルの第2の中心点を決定するようにプログラムされる、側面24に記載のシステム。
26.基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるために、ハードウェアプロセッサは、対象の第1の眼球の基準眼球モデルの半径と、対象の第1の眼球の複数の基準候補点の第2の候補点と対象の第1の眼球の基準眼球モデルの中心との間の距離とに基づいて、第2の誤差統計を最小限にするようにプログラムされる、側面25に記載のシステム。
27.基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるために、ハードウェアプロセッサは、対象の第1の眼球の基準眼球モデルの半径と、対象の第1の眼球の複数の第2の候補点の各第2の候補点と対象の第1の眼球の基準眼球モデルの中心との間の平均距離とに基づいて、第2の誤差統計を最小限にするようにプログラムされる、側面25に記載のシステム。
28.第2の誤差統計は、範囲−∞〜∞にわたって−1.0と1.0との間で変動する、側面26−27のいずれか1項に記載のシステム。
29.第2の誤差統計は、約ゼロの近似線形である、側面26−28のいずれか1項に記載のシステム。
30.第2の誤差統計は、tanhに基づく、側面26−28のいずれか1項に記載のシステム。
31.基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるために、ハードウェアプロセッサは、第2の眼球モデル内の対象の各眼球の強膜の複数の第2の候補点の1つ以上の第2の誤対応候補点を決定し、第2の誤対応候補点を対象の各眼球の強膜の複数の第2の候補点から除去し、更新された基準眼球モデルを第2の誤対応候補点が除去された対象の各眼球の強膜の複数の第2の候補点に適合させるようにプログラムされる、側面25−30のいずれか1項に記載のシステム。
32.1つ以上の第2の誤対応候補点を決定するために、ハードウェアプロセッサは、複数の第2の候補点の中央値に基づいて、基準眼球モデル内の対象の各眼球の強膜の複数の基準候補点の1つ以上の基準誤対応候補点を決定するようにプログラムされる、側面31に記載のシステム。
33.基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるために、ハードウェアプロセッサは、基準眼球モデルと複数の第2の候補点の適合が収束するまで、基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に反復的に適合させるようにプログラムされる、側面25−30のいずれか1項に記載のシステム。
34.第2の頭部走査内の第2の推測点を決定するために、ハードウェアプロセッサは、対象の各眼球の第2の中心点に基づいて、第2の頭部走査内の第2の推測点を決定するようにプログラムされる、側面25−33のいずれか1項に記載のシステム。
35.第2の頭部走査内の第2の推測点を決定するために、ハードウェアプロセッサはさらに、対象の各眼球の第2の中心点間に形成される軸と基準頭部走査の座標系の軸との第2のクロス積を決定するようにプログラムされる、側面34に記載のシステム。
36.第2の推測点は、第2のクロス積上にある、側面35に記載のシステム。
37.第2の推測点は、第2のクロス積上で対象の頭部から離れる、側面36に記載のシステム。
38.座標系の軸は、座標系のy−軸である、側面35−37のいずれか1項に記載のシステム。
39.基準頭部走査内の対象の頭部の姿勢は、近似的に、座標系の軸の方向にある、側面35−38のいずれか1項に記載のシステム。
40.ハードウェアプロセッサはさらに、対象の頭部上の追跡可能点を使用して、基準頭部走査内の対象の頭部に対する第2の頭部走査内の対象のアフィン変換された第2の頭部の枢軸を決定するようにプログラムされる、側面1−39のいずれか1項に記載のシステム。
41.枢軸を決定するために、ハードウェアプロセッサは、対象のアフィン変換された第2の頭部上の追跡可能点と基準頭部走査内の対象の頭部上の追跡可能点との間の距離を最小限にするようにプログラムされる、側面40に記載のシステム。
42.枢軸を決定するために、ハードウェアプロセッサは、対象のアフィン変換された第2の頭部上の追跡可能点と基準頭部走査内の対象の頭部上の追跡可能点の周囲の表面との間の距離を最小限にするようにプログラムされる、側面40に記載のシステム。
43.ハードウェアプロセッサはさらに、対象の頭部上の追跡可能点を使用して、基準頭部走査内の対象の頭部に対する第2の頭部走査内の対象のアフィン変換された第2の頭部の枢軸を受信するようにプログラムされる、側面1−42のいずれか1項に記載のシステム。
44.ハードウェアプロセッサはさらに、第2の頭部走査内の対象の各眼球の平行移動調節、第2の頭部走査内の対象の眼球の回転調節、またはそれらの任意の組み合わせを受信するようにプログラムされる、側面1−43のいずれか1項に記載のシステム。
45.ハードウェアプロセッサはさらに、対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのリグを生成し、アフィン変換に基づいて、対象のアバタの修正されたリグを生成するようにプログラムされる、側面1−44のいずれか1項に記載のシステム。
46.ハードウェアプロセッサはさらに、対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのデジタル表現を生成し、アフィン変換に基づいて、対象のアバタの修正されたデジタル表現を生成するようにプログラムされる、側面1−44のいずれか1項に記載のシステム。
47.ハードウェアプロセッサはさらに、アフィン変換に基づいて、眼球をデジタルパペット内に適合させるようにプログラムされる、側面1−44のいずれか1項に記載のシステム。
48.対象の頭部の姿勢を決定するためのシステムであって、対象の頭部の基準頭部走査を記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、実行可能命令によって、対象の基準頭部走査を受信し、基準頭部走査内の対象の第1の眼球の第1の強膜の複数の第1の基準候補点に基づいて、対象の第1の眼球の第1の基準中心点を決定し、基準頭部走査内の対象の第2の眼球の第2の強膜の複数の第2の基準候補点に基づいて、対象の第2の眼球の第2の基準中心点を決定し、第1の基準中心点および第2の基準中心点に基づいて、基準頭部走査内の基準推測点を決定し、第1の基準中心点、第2の基準中心点、および基準推測点に基づいて、対象の頭部の姿勢を生成するようにプログラムされる、ハードウェアプロセッサとを備える、システム。
49.基準頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含む、側面48に記載のシステム。
50.対象の第1の眼球の第1の基準中心点を決定するために、ハードウェアプロセッサはさらに、第1の基準眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させ、対象の第1の眼球の第1の基準眼球モデルに基づいて、第1の眼球の第1の基準中心点を決定するようにプログラムされる、側面48−49のいずれか1項に記載のシステム。
51.第1の基準眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させるために、ハードウェアプロセッサは、対象の第1の眼球の第1の基準眼球モデルの半径と、対象の第1の眼球の複数の第1の基準候補点の第1の基準候補点と第1の眼球の第1の基準眼球モデルの中心との間の距離とに基づいて、第1の誤差統計を最小限にするようにプログラムされる、側面50に記載のシステム。
52.第1の基準眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させるために、ハードウェアプロセッサは、対象の第1の眼球の第1の基準眼球モデルの半径と、対象の第1の眼球の複数の第1の基準候補点の各第1の基準候補点と第1の眼球の基準眼球モデルの中心との間の平均距離とに基づいて、第1の誤差統計を最小限にするようにプログラムされる、側面50に記載のシステム。
53.第1の誤差統計は、範囲−∞〜∞にわたって−1.0と1.0との間で変動する、側面50−52のいずれか1項に記載のシステム。
54.第1の誤差統計は、約ゼロの近似線形である、側面50−53のいずれか1項に記載のシステム。
55.第1の誤差統計は、tanhに基づく、側面50−54のいずれか1項に記載のシステム。
56.第1の基準眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させるために、ハードウェアプロセッサは、第1の基準眼球モデルに対する対象の第1の眼の第1の強膜の複数の第1の基準候補点の1つ以上の第1の基準誤対応候補点を決定し、第1の基準誤対応候補点を対象の第1の眼の第1の強膜の複数の第1の基準候補点から除去し、更新された第1の眼球モデルを第1の基準誤対応候補点が除去された対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させるようにプログラムされる、側面50−55のいずれか1項に記載のシステム。
57.1つ以上の第1の基準誤対応候補点を決定するために、ハードウェアプロセッサは、複数の第1の基準候補点の中央値に基づいて、第1の基準眼球モデル内の対象の第1の眼球の第1の強膜の複数の第1の基準候補点の1つ以上の第1の基準誤対応候補点を決定するようにプログラムされる、側面56に記載のシステム。
58.第1の基準眼球モデルを対象の第1の眼の第1の強膜の複数の第1の基準候補点に適合させるために、ハードウェアプロセッサは、第1の基準眼球モデルと複数の第1の基準候補点の適合が収束するまで、第1の基準眼球モデルを対象の第1の眼の第1の強膜の複数の第1の基準候補点に反復的に適合させるようにプログラムされる、側面50−57のいずれか1項に記載のシステム。
59.基準頭部走査内の基準推測点を決定するために、ハードウェアプロセッサはさらに、第1の基準中心点と第2の基準中心点との間に形成される軸と、基準頭部走査の座標系の軸との基準クロス積を決定するようにプログラムされる、側面48−58のいずれか1項に記載のシステム。
60.基準推測点は、基準クロス積上にある、側面59に記載のシステム。
61.基準推測点は、基準クロス積上で対象の頭部から離れる、側面60に記載のシステム。
62.座標系の軸は、座標系のy−軸である、側面59−61のいずれか1項に記載のシステム。
63.基準頭部走査内の対象の頭部の姿勢は、近似的に、座標系の軸の方向にある、側面59−62のいずれか1項に記載のシステム。
64.基準眼球モデルのパラメータは、幾何学的形状を含む、側面50−63のいずれか1項に記載のシステム。
65.幾何学的形状は、球体、楕円体、またはそれらの組み合わせを含む、側面64に記載のシステム。
66.第1の基準眼球モデルの第1のパラメータは、少なくとも1つの半径を含む、側面64−65のいずれか1項に記載のシステム。
67.基準眼球モデルを対象の第1の眼の第1の強膜の第1の基準候補点に適合させるために、ハードウェアプロセッサは、第1の基準眼球モデルの第1のパラメータの少なくとも1つの半径を調節するようにプログラムされる、側面66に記載のシステム。
68.ハードウェアプロセッサはさらに、第2の対象の頭部走査を受信し、第2の頭部走査内の対象の第1の眼球の第1の強膜の複数の第1の候補点、第1の眼球モデル、および第2の誤差統計に基づいて、対象の第1の眼球の第1の中心点を決定し、第2の頭部走査内の対象の第2の眼球の第2の強膜の複数の第2の候補点、第2の眼球モデル、および第2の誤差統計に基づいて、対象の第2の眼球の第2の中心点を決定し、第1の中心点および第2の中心点に基づいて、頭部走査内の推測点を決定し、第1の中心点、第2の中心点、および推測点から、第1の基準中心点、第2の基準中心点、および基準推測点へのアフィン変換を決定し、アフィン変換は、第2の頭部走査から基準頭部走査への変換を表すようにプログラムされる、側面48−67のいずれか1項に記載のシステム。
69.ハードウェアプロセッサはさらに、対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのリグを生成するようにプログラムされる、側面48−68のいずれか1項に記載のシステム。
70.ハードウェアプロセッサはさらに、対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのデジタル表現を生成するようにプログラムされる、側面48−68のいずれか1項に記載のシステム。
71.ハードウェアプロセッサはさらに、アフィン変換に基づいて、眼球をデジタルパペット内に適合させるようにプログラムされる、側面48−68のいずれか1項に記載のシステム。
72.対象の頭部の姿勢を決定するためのシステムであって、対象の第1の基準眼球モデルと、対象の第2の基準眼球モデルと、対象の頭部の基準推測点とを含む、対象の頭部の基準モデルと、対象の頭部の頭部走査とを記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、実行可能命令によって、対象の頭部走査を受信し、頭部走査内の対象の第1の眼球の第1の強膜の複数の第1の候補点に基づいて、対象の第1の眼球の第1の中心点を決定し、頭部走査内の対象の第2の眼球の第2の強膜の複数の第2の候補点に基づいて、対象の第2の眼球の第2の中心点を決定し、第1の中心点および第2の中心点に基づいて、頭部走査内の推測点を決定し、第1の中心点、第2の中心点、および推測点から、第1の基準中心点、基準第2の中心点、および基準推測点へのアフィン変換を決定し、アフィン変換は、頭部走査から頭部の基準モデルへの変換を表すようにプログラムされる、ハードウェアプロセッサとを備える、システム。
73.頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含む、側面72に記載のシステム。
74.対象の第1の眼球の第1の中心点を決定するために、ハードウェアプロセッサはさらに、第1の眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させ、対象の第1の眼球の第1の眼球モデルに基づいて、第1の眼球の第1の中心点を決定するようにプログラムされる、側面72−73のいずれか1項に記載のシステム。
75.第1の眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるために、ハードウェアプロセッサは、対象の第1の眼球の第1の基準眼球モデルの半径と、対象の第1の眼球の複数の第1の候補点の第1の候補点と第1の眼球の第1の眼球モデルの中心との間の距離とに基づいて、第1の誤差統計を最小限にするようにプログラムされる、側面74に記載のシステム。
76.第1の眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるために、ハードウェアプロセッサは、対象の第1の眼球の第1の眼球モデルの半径と、対象の第1の眼球の複数の第1の候補点の各第1の候補点と第1の眼球の眼球モデルの中心との間の平均距離とに基づいて、第1の誤差統計を最小限にするようにプログラムされる、側面75に記載のシステム。
77.第1の誤差統計は、範囲−∞〜∞にわたって−1.0と1.0との間で変動する、側面75−76のいずれか1項に記載のシステム。
78.第1の誤差統計は、約ゼロの近似線形である、側面75−77のいずれか1項に記載のシステム。
79.第1の誤差統計は、tanhに基づく、側面75−78のいずれか1項に記載のシステム。
80.第1の眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるために、ハードウェアプロセッサは、第1の基準眼球モデルに対する対象の第1の眼の第1の強膜の複数の第1の候補点の1つ以上の第1の誤対応候補点を決定し、第1の基準誤対応候補点を対象の第1の眼の第1の強膜の複数の第1の候補点から除去し、更新された第1の眼球モデルを第1の基準誤対応候補点が除去された対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるようにプログラムされる、側面74−79のいずれか1項に記載のシステム。
81.1つ以上の第1の誤対応候補点を決定するために、ハードウェアプロセッサは、複数の第1の候補点の中央値に基づいて、第1の基準眼球モデル内の対象の第1の眼球の第1の強膜の複数の第1の候補点の1つ以上の第1の誤対応候補点を決定するようにプログラムされる、側面80に記載のシステム。
82.第1の基準眼球モデルを対象の第1の眼の第1の強膜の複数の第1の候補点に適合させるために、ハードウェアプロセッサは、第1の基準眼球モデルと複数の第1の候補点の適合が収束するまで、第1の基準眼球モデルを対象の第1の眼の第1の強膜の複数の第1の候補点に反復的に適合させるようにプログラムされる、側面74−81のいずれか1項に記載のシステム。
83.頭部走査内の基準推測点を決定するために、ハードウェアプロセッサはさらに、第1の中心点と第2の中心点との間に形成される軸と、頭部走査の座標系の軸とのクロス積を決定するようにプログラムされる、側面74−82のいずれか1項に記載のシステム。
84.推測点は、クロス積上にある、側面83に記載のシステム。
85.推測点は、クロス積上で対象の頭部から離れる、側面84に記載のシステム。
86.座標系の軸は、座標系のy−軸である、側面83−85のいずれか1項に記載のシステム。
87.頭部走査内の対象の頭部の姿勢は、近似的に、座標系の軸の方向にある、側面83−86のいずれか1項に記載のシステム。
88.第1の基準眼球モデルの第1のパラメータは、幾何学的形状を含む、側面72−87のいずれか1項に記載のシステム。
89.幾何学的形状は、球体、楕円体、またはそれらの組み合わせを含む、側面88に記載のシステム。
90.第1の基準眼球モデルの第1のパラメータは、少なくとも1つの半径を含む、側面88−89のいずれか1項に記載のシステム。
91.ハードウェアプロセッサはさらに、対象の基準頭部走査を受信し、第1の眼球モデルを基準頭部走査内の対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させ、第1の眼球モデルは、第1の眼球の第1の中心点を含み、第2の眼球モデルを基準頭部走査内の対象の第2の眼球の第2の強膜の複数の第2の候補点に適合させ、第2の眼球モデルは、第2の眼球の第2の中心点を含み、第1の基準中心点および第2の基準中心点に基づいて、基準頭部走査内の基準推測点を決定するようにプログラムされる、側面72−90のいずれか1項に記載のシステム。
92.ハードウェアプロセッサはさらに、第1の基準中心点、第2の基準中心点、および基準推測点に基づいて、対象のアバタのリグを生成するようにプログラムされる、側面91に記載のシステム。
93.ハードウェアプロセッサはさらに、第1の基準中心点、第2の基準中心点、および基準推測点に基づいて、対象のアバタのデジタル表現を生成するようにプログラムされる、側面91に記載のシステム。
94.ハードウェアプロセッサはさらに、アフィン変換に基づいて、眼球をデジタルパペット内に適合させるようにプログラムされる、側面91に記載のシステム。
95.対象の頭部走査を整合させるための方法であって、ハードウェアプロセッサの制御下で、対象の基準頭部走査を受信するステップと、基準頭部走査内の対象の各眼球の強膜の複数の基準候補点に基づいて、基準頭部走査内の対象の各眼球の基準中心点および基準推測点を決定するステップと、対象の第2の頭部走査を受信するステップと、第2の頭部走査内の対象の各眼球の強膜の複数の第2の候補点に基づいて、第2の頭部走査内の対象の各眼球の第2の中心点および第2の推測点を決定するステップと、第2の頭部走査内の対象の各眼球の第2の中心点および第2の推測点および基準頭部走査内の対応する点に基づいて、第2の頭部走査から基準頭部走査へのアフィン変換を決定するステップと、アフィン変換を第2の頭部走査内の対象の頭部上で実施し、第2の頭部走査内の対象のアフィン変換された頭部を生成するステップとを含む、方法。
96.基準頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含む、側面95に記載の方法。
97.対象の各眼球の基準中心点を決定するステップは、対象の基準頭部走査内の対象の各眼球の強膜の複数の基準候補点を決定するステップを含む、側面95−96のいずれか1項に記載の方法。
98.対象の各眼球の基準中心点を決定するステップは、基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるステップと、対象の各眼球の基準眼球モデルに基づいて、各眼球の基準中心点を決定するステップとを含む、側面97に記載の方法。
99.基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるステップは、対象の第1の眼球の基準眼球モデルの半径と、対象の第1の眼球の複数の基準候補点の基準候補点と第1の眼球の基準眼球モデルの中心との間の距離とに基づいて、第1の誤差統計を最小限にするステップを含む、側面98に記載の方法。
100.基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるステップは、対象の第1の眼球の基準眼球モデルの半径と、対象の第1の眼球の複数の基準候補点の各基準候補点と第1の眼球の基準眼球モデルの中心との間の平均距離とに基づいて、第1の誤差統計を最小限にするステップを含む、側面98に記載の方法。
101.第1の誤差統計は、範囲−∞〜∞にわたって−1.0と1.0との間で変動する、側面99−100のいずれか1項に記載の方法。
102.第1の誤差統計は、約ゼロ誤差の近似線形である、側面99−101のいずれか1項に記載の方法。
103.第1の誤差統計は、少なくとも部分的に、シグモイド関数に基づく、側面99−102のいずれか1項に記載の方法。
104.基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるステップは、基準眼球モデルに対する対象の各眼球の強膜の複数の基準候補点の1つ以上の基準誤対応候補点を決定するステップと、基準誤対応候補点を対象の各眼球の強膜の複数の基準候補点から除去するステップと、更新された眼球モデルを基準誤対応候補点が除去された対象の各眼球の強膜の複数の基準候補点に適合させるステップとを含む、側面98−103のいずれか1項に記載の方法。
105.1つ以上の基準誤対応候補点を決定するために、ハードウェアプロセッサは、複数の基準候補点の中央値に基づいて、基準眼球モデル内の対象の各眼球の強膜の複数の基準候補点の1つ以上の基準誤対応候補点を決定するようにプログラムされる、側面104に記載の方法。
106.基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に適合させるステップは、基準眼球モデルと複数の基準候補点の適合が収束するまで、基準眼球モデルを対象の各眼球の強膜の複数の基準候補点に反復的に適合させるステップを含む、側面98−103のいずれか1項に記載の方法。
107.基準頭部走査内の基準推測点を決定するステップは、対象の各眼球の基準中心点に基づいて、基準頭部走査内の基準推測点を決定するステップを含む、側面95−106のいずれか1項に記載の方法。
108.基準頭部走査内の基準推測点を決定するステップは、対象の各眼球の基準中心点間に形成される軸と、基準頭部走査の座標系の軸との基準クロス積を決定するステップを含む、側面107に記載の方法。
109.基準推測点は、基準クロス積上にある、側面108に記載の方法。
110.基準推測点は、基準クロス積上で対象の頭部から離れる、側面109に記載の方法。
111.座標系の軸は、座標系のy−軸である、側面108−110のいずれか1項に記載の方法。
112.基準頭部走査内の対象の頭部の姿勢は、近似的に、座標系の軸の方向にある、側面108−111のいずれか1項に記載の方法。
113.基準眼球モデルのパラメータは、幾何学的形状を含む、側面98−112のいずれか1項に記載の方法。
114.幾何学的形状は、球体、楕円体、またはそれらの組み合わせを含む、側面113に記載の方法。
115.基準眼球モデルのパラメータは、少なくとも1つの半径を含む、側面113−114のいずれか1項に記載の方法。
116.基準眼球モデルを対象の各眼球の強膜の基準候補点に適合させるステップは、基準眼球モデルのパラメータの少なくとも1つの半径を調節するステップを含む、側面115に記載の方法。
117.第2の頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含む、側面95−116のいずれか1項に記載の方法。
118.対象の各眼球の第2の中心点を決定するステップは、対象の基準頭部走査内の対象の各眼球の強膜の複数の第2の候補点を決定するステップを含む、側面95−117のいずれか1項に記載の方法。
119.対象の各眼球の第2の中心点を決定するステップはさらに、基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるステップと、複数の第2の候補点に適合される対象の各眼球の基準眼球モデルに基づいて、各眼球モデルの第2の中心点を決定するステップとを含む、側面118に記載の方法。
120.基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるステップは、対象の第1の眼球の基準眼球モデルの半径と、対象の第1の眼球の複数の基準候補点の第2の候補点と対象の第1の眼球の基準眼球モデルの中心との間の距離とに基づいて、第2の誤差統計を最小限にするステップを含む、側面119に記載の方法。
121.基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるステップは、対象の第1の眼球の基準眼球モデルの半径と、対象の第1の眼球の複数の第2の候補点の各第2の候補点と対象の第1の眼球の基準眼球モデルの中心との間の平均距離とに基づいて、第2の誤差統計を最小限にするステップを含む、側面119に記載の方法。
122.第2の誤差統計は、範囲−∞〜∞にわたって−1.0と1.0との間で変動する、側面120−121のいずれか1項に記載の方法。
123.第2の誤差統計は、約ゼロの近似線形である、側面120−122のいずれか1項に記載の方法。
124.第2の誤差統計は、tanhに基づく、側面120−122のいずれか1項に記載の方法。
125.基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるステップは、第2の眼球モデル内の対象の各眼球の強膜の複数の第2の候補点の1つ以上の第2の誤対応候補点を決定するステップと、第2の誤対応候補点を対象の各眼球の強膜の複数の第2の候補点から除去するステップと、更新された基準眼球モデルを第2の誤対応候補点が除去された対象の各眼球の強膜の複数の第2の候補点に適合させるステップとを含む、側面119−124のいずれか1項に記載の方法。
126.1つ以上の第2の誤対応候補点を決定するステップは、複数の第2の候補点の中央値に基づいて、基準眼球モデル内の対象の各眼球の強膜の複数の基準候補点の1つ以上の基準誤対応候補点を決定するステップを含む、側面125に記載の方法。
127.基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に適合させるステップは、基準眼球モデルと複数の第2の候補点の適合が収束するまで、基準眼球モデルを対象の各眼球の強膜の複数の第2の候補点に反復的に適合させるステップを含む、側面119−124のいずれか1項に記載の方法。
128.第2の頭部走査内の第2の推測点を決定するステップは、対象の各眼球の第2の中心点に基づいて、第2の頭部走査内の第2の推測点を決定するステップを含む、側面119−127のいずれか1項に記載の方法。
129.第2の頭部走査内の第2の推測点を決定するステップはさらに、対象の各眼球の第2の中心点間に形成される軸と、基準頭部走査の座標系の軸との第2のクロス積を決定するステップを含む、側面128に記載の方法。
130.第2の推測点は、第2のクロス積上にある、側面129に記載の方法。
131.第2の推測点は、第2のクロス積上で対象の頭部から離れる、側面130に記載の方法。
132.座標系の軸は、座標系のy−軸である、側面129−131のいずれか1項に記載の方法。
133.基準頭部走査内の対象の頭部の姿勢は、近似的に、座標系の軸の方向にある、側面129−132のいずれか1項に記載の方法。
134.対象の頭部上の追跡可能点を使用して、基準頭部走査内の対象の頭部に対する第2の頭部走査内の対象のアフィン変換された第2の頭部の枢軸を決定するステップをさらに含む、側面95−133のいずれか1項に記載の方法。
135.枢軸を決定するステップは、対象のアフィン変換された第2の頭部上の追跡可能点と基準頭部走査内の対象の頭部上の追跡可能点との間の距離を最小限にするステップを含む、側面134に記載の方法。
136.枢軸を決定するステップは、対象のアフィン変換された第2の頭部上の追跡可能点と基準頭部走査内の対象の頭部上の追跡可能点の周囲の表面との間の距離を最小限にするステップを含む、側面134に記載の方法。
137.対象の頭部上の追跡可能点を使用して、基準頭部走査内の対象の頭部に対する第2の頭部走査内の対象のアフィン変換された第2の頭部の枢軸を受信するステップをさらに含む、側面95−136のいずれか1項に記載の方法。
138.第2の頭部走査内の対象の各眼球の平行移動調節、第2の頭部走査内の対象の眼球の回転調節、またはそれらの任意の組み合わせを受信するステップをさらに含む、側面95−137のいずれか1項に記載の方法。
139.対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのリグを生成するステップと、アフィン変換に基づいて、対象のアバタの修正されたリグを生成するステップとをさらに含む、側面95−138のいずれか1項に記載の方法。
140.対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのデジタル表現を生成するステップと、アフィン変換に基づいて、対象のアバタの修正されたデジタル表現を生成するステップとをさらに含む、側面95−138のいずれか1項に記載の方法。
141.アフィン変換に基づいて、眼球をデジタルパペット内に適合させるステップをさらに含む、側面95−138のいずれか1項に記載の方法。
142.対象の頭部の姿勢を決定するための方法であって、ハードウェアプロセッサの制御下で、対象の基準頭部走査を受信するステップと、基準頭部走査内の対象の第1の眼球の第1の強膜の複数の第1の基準候補点に基づいて、対象の第1の眼球の第1の基準中心点を決定するステップと、基準頭部走査内の対象の第2の眼球の第2の強膜の複数の第2の基準候補点に基づいて、対象の第2の眼球の第2の基準中心点を決定するステップと、第1の基準中心点および第2の基準中心点に基づいて、基準頭部走査内の基準推測点を決定するステップと、第1の基準中心点、第2の基準中心点、および基準推測点に基づいて、対象の頭部の姿勢を生成するステップとを含む、方法。
143.基準頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含む、側面142に記載の方法。
144.対象の第1の眼球の第1の基準中心点を決定するステップはさらに、第1の基準眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させ、対象の第1の眼球の第1の基準眼球モデルに基づいて、第1の眼球の第1の基準中心点を決定するステップを含む、側面142−143のいずれか1項に記載の方法。
145.第1の基準眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させるステップは、対象の第1の眼球の第1の基準眼球モデルの半径と、対象の第1の眼球の複数の第1の基準候補点の第1の基準候補点と第1の眼球の第1の基準眼球モデルの中心との間の距離とに基づいて、第1の誤差統計を最小限にするステップを含む、側面144に記載の方法。
146.第1の基準眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させるステップは、対象の第1の眼球の第1の基準眼球モデルの半径と、対象の第1の眼球の複数の第1の基準候補点の各第1の基準候補点と第1の眼球の基準眼球モデルの中心との間の平均距離とに基づいて、第1の誤差統計を最小限にするステップを含む、側面144に記載の方法。
147.第1の誤差統計は、範囲−∞〜∞にわたって−1.0と1.0との間で変動する、側面144−146のいずれか1項に記載の方法。
148.第1の誤差統計は、約ゼロの近似線形である、側面144−147のいずれか1項に記載の方法。
149.第1の誤差統計は、tanhに基づく、側面144−148のいずれか1項に記載の方法。
150.第1の基準眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させるステップは、第1の基準眼球モデルに対する対象の第1の眼の第1の強膜の複数の第1の基準候補点の1つ以上の第1の基準誤対応候補点を決定するステップと、第1の基準誤対応候補点を対象の第1の眼の第1の強膜の複数の第1の基準候補点から除去するステップと、更新された第1の眼球モデルを第1の基準誤対応候補点が除去された対象の第1の眼球の第1の強膜の複数の第1の基準候補点に適合させるステップとを含む、側面144−149のいずれか1項に記載の方法。
151.1つ以上の第1の基準誤対応候補点を決定するステップは、複数の第1の基準候補点の中央値に基づいて、第1の基準眼球モデル内の対象の第1の眼球の第1の強膜の複数の第1の基準候補点の1つ以上の第1の基準誤対応候補点を決定するステップを含む、側面150に記載の方法。
152.第1の基準眼球モデルを対象の第1の眼の第1の強膜の複数の第1の基準候補点に適合させるステップは、第1の基準眼球モデルと複数の第1の基準候補点の適合が収束するまで、第1の基準眼球モデルを対象の第1の眼の第1の強膜の複数の第1の基準候補点に反復的に適合させるステップを含む、側面144−151のいずれか1項に記載の方法。
153.基準頭部走査内の基準推測点を決定するステップはさらに、第1の基準中心点と第2の基準中心点との間に形成される軸と、基準頭部走査の座標系の軸との基準クロス積を決定するステップを含む、側面142−152のいずれか1項に記載の方法。
154.基準推測点は、基準クロス積上にある、側面153に記載の方法。
155.基準推測点は、基準クロス積上で対象の頭部から離れる、側面154に記載の方法。
156.座標系の軸は、座標系のy−軸である、側面153−155のいずれか1項に記載の方法。
157.基準頭部走査内の対象の頭部の姿勢は、近似的に、座標系の軸の方向にある、側面153−156のいずれか1項に記載の方法。
158.基準眼球モデルのパラメータは、幾何学的形状を含む、側面144−157のいずれか1項に記載の方法。
159.幾何学的形状は、球体、楕円体、またはそれらの組み合わせを含む、側面158に記載の方法。
160.第1の基準眼球モデルの第1のパラメータは、少なくとも1つの半径を含む、側面158−159のいずれか1項に記載の方法。
161.基準眼球モデルを対象の第1の眼の第1の強膜の第1の基準候補点に適合させるステップは、第1の基準眼球モデルの第1のパラメータの少なくとも1つの半径を調節するステップを含む、側面160に記載の方法。
162.第2の対象の頭部走査を受信するステップと、第2の頭部走査内の対象の第1の眼球の第1の強膜の複数の第1の候補点、第1の眼球モデル、および第2の誤差統計に基づいて、対象の第1の眼球の第1の中心点を決定するステップと、第2の頭部走査内の対象の第2の眼球の第2の強膜の複数の第2の候補点、第2の眼球モデル、および第2の誤差統計に基づいて、対象の第2の眼球の第2の中心点を決定するステップと、第1の中心点および第2の中心点に基づいて、頭部走査内の推測点を決定し、第1の中心点、第2の中心点、および推測点から、第1の基準中心点、第2の基準中心点、および基準推測点へのアフィン変換を決定するステップであって、アフィン変換は、第2の頭部走査から基準頭部走査への変換を表す、ステップとをさらに含む、側面142−161のいずれか1項に記載の方法。
163.対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのリグを生成するステップをさらに含む、側面142−162のいずれか1項に記載の方法。
164.対象の各眼球の基準中心点および基準推測点に基づいて、対象のアバタのデジタル表現を生成するステップをさらに含む、側面142−162のいずれか1項に記載の方法。
165.アフィン変換に基づいて、眼球をデジタルパペット内に適合させるステップをさらに含む、側面142−162のいずれか1項に記載の方法。
166.対象の頭部の姿勢を決定するための方法であって、対象の頭部の基準推測点を含む、対象の頭部の基準モデルを記憶する、ハードウェアプロセッサの制御下で行われ、ハードウェアプロセッサは、非一過性メモリと通信し、実行可能命令によって、対象の頭部の頭部走査を受信し、頭部走査内の対象の第1の眼球の第1の強膜の複数の第1の候補点に基づいて、対象の第1の眼球の第1の中心点を決定し、頭部走査内の対象の第2の眼球の第2の強膜の複数の第2の候補点に基づいて、対象の第2の眼球の第2の中心点を決定し、第1の中心点および第2の中心点に基づいて、頭部走査内の推測点を決定し、第1の中心点、第2の中心点、および推測点から、頭部の基準モデルの第1の基準中心点、基準モデルの第2の基準中心点、および基準モデルの基準推測点へのアフィン変換を決定し、アフィン変換は、頭部走査から頭部の基準モデルへの変換を表すようにプログラムされる、方法。
167.頭部走査は、点群、メッシュ、赤緑青色深度(RGB−D)走査、対象の頭部の複数のxyz座標、またはそれらの組み合わせを含む、側面166に記載の方法。
168.対象の第1の眼球の第1の中心点を決定するステップはさらに、第1の眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるステップと、対象の第1の眼球の第1の眼球モデルに基づいて、第1の眼球の第1の中心点を決定するステップとを含む、側面166−167のいずれか1項に記載の方法。
169.第1の眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるステップは、対象の第1の眼球の第1の基準眼球モデルの半径と、対象の第1の眼球の複数の第1の候補点の第1の候補点と第1の眼球の第1の眼球モデルの中心との間の距離とに基づいて、第1の誤差統計を最小限にするステップを含む、側面168に記載の方法。
170.第1の眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるステップは、対象の第1の眼球の第1の眼球モデルの半径と、対象の第1の眼球の複数の第1の候補点の各第1の候補点と第1の眼球の眼球モデルの中心との間の平均距離とに基づいて、第1の誤差統計を最小限にするステップを含む、側面169に記載の方法。
171.第1の誤差統計は、範囲−∞〜∞にわたって−1.0と1.0との間で変動する、側面169−170のいずれか1項に記載の方法。
172.第1の誤差統計は、約ゼロの近似線形である、側面169−171のいずれか1項に記載の方法。
173.第1の誤差統計は、tanhに基づく、側面169−172のいずれか1項に記載の方法。
174.第1の眼球モデルを対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるステップは、第1の基準眼球モデルに対する対象の第1の眼の第1の強膜の複数の第1の候補点の1つ以上の第1の誤対応候補点を決定するステップと、第1の基準誤対応候補点を対象の第1の眼の第1の強膜の複数の第1の候補点から除去するステップと、更新された第1の眼球モデルを第1の基準誤対応候補点が除去された対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるステップとを含む、側面168−173のいずれか1項に記載の方法。
175.1つ以上の第1の誤対応候補点を決定するステップは、複数の第1の候補点の中央値に基づいて、第1の基準眼球モデル内の対象の第1の眼球の第1の強膜の複数の第1の候補点の1つ以上の第1の誤対応候補点を決定するステップを含む、側面174に記載の方法。
176.第1の基準眼球モデルを対象の第1の眼の第1の強膜の複数の第1の候補点に適合させるステップは、第1の基準眼球モデルと複数の第1の候補点の適合が収束するまで、第1の基準眼球モデルを対象の第1の眼の第1の強膜の複数の第1の候補点に反復的に適合させるステップを含む、側面168−175のいずれか1項に記載の方法。
177.頭部走査内の基準推測点を決定するステップはさらに、第1の中心点と第2の中心点との間に形成される軸と、頭部走査の座標系の軸とのクロス積を決定するステップを含む、側面168−176のいずれか1項に記載の方法。
178.推測点は、クロス積上にある、側面177に記載の方法。
179.推測点は、クロス積上で対象の頭部から離れる、側面178に記載の方法。
180.座標系の軸は、座標系のy−軸である、側面177−179のいずれか1項に記載の方法。
181.頭部走査内の対象の頭部の姿勢は、近似的に、座標系の軸の方向にある、側面177−180のいずれか1項に記載の方法。
182.第1の基準眼球モデルの第1のパラメータは、幾何学的形状を含む、側面166−181のいずれか1項に記載の方法。
183.幾何学的形状は、球体、楕円体、またはそれらの組み合わせを含む、側面182に記載の方法。
184.第1の基準眼球モデルの第1のパラメータは、少なくとも1つの半径を含む、側面182−183のいずれか1項に記載の方法。
185.対象の基準頭部走査を受信するステップと、第1の眼球モデルを基準頭部走査内の対象の第1の眼球の第1の強膜の複数の第1の候補点に適合させるステップであって、第1の眼球モデルは、第1の眼球の第1の中心点を含む、ステップと、第2の眼球モデルを基準頭部走査内の対象の第2の眼球の第2の強膜の複数の第2の候補点に適合させるステップであって、第2の眼球モデルは、第2の眼球の第2の中心点を含む、ステップと、第1の基準中心点および第2の基準中心点に基づいて、基準頭部走査内の基準推測点を決定するステップとをさらに含む、側面166−184のいずれか1項に記載の方法。
186.第1の基準中心点、第2の基準中心点、および基準推測点に基づいて、対象のアバタのリグを生成するステップをさらに含む、側面185に記載の方法。
187.第1の基準中心点、第2の基準中心点、および基準推測点に基づいて、対象のアバタのデジタル表現を生成するステップをさらに含む、側面185に記載の方法。
188.アフィン変換に基づいて、眼球をデジタルパペット内に適合させるステップをさらに含む、側面185に記載の方法。
189.それぞれ対象の頭部の少なくとも一部を含む、複数の走査を整合させるための方法であって、ハードウェアプロセッサの制御下で、対象の複数の走査の第1の走査および第2の走査を整合させるステップであって、第1の走査および第2の走査は、それぞれ、対象の頭部の少なくとも一部を含む、ステップを含み、整合させるステップは、(i)第1の走査からの、対象の第1の眼の第1の強膜の可視部分に基づく第1の基準点および対象の第2の眼の第2の強膜の可視部分に基づく第2の基準点と、(ii)第2の走査からの、第1の眼の第1の強膜の可視部分に基づく第1の基準点および第2の眼の第2の強膜の可視部分に基づく第2の基準点とを合致させるステップを含む、方法。
190.第1の走査からの第1の眼の第1の基準点および第2の眼の第2の基準点は、第1の眼の第1の中心点および第2の眼の第2の中心点を含む、側面189に記載の方法。
191.第2の走査からの第1の眼の第1の基準点および第2の眼の第2の基準点は、第1の眼の第1の中心点および第2の眼の第2の中心点を含む、側面189または側面190に記載の方法。
192.第1の走査および第2の走査を整合させるステップは、第1の走査から第2の走査へのアフィン変換を決定するステップを含む、側面189−191のいずれか1項に記載の方法。
193.第1の走査または第2の走査の一方または両方に関して、第1の眼球モデルを対象の第1の眼の第1の強膜の可視部分に適合させるステップ、または第2の眼球モデルを対象の第2の眼の第2の強膜の可視部分に適合させるステップをさらに含む、側面189−192のいずれか1項に記載の方法。
194.第1の眼球モデルを適合させるステップまたは第2の眼球モデルを適合させるステップは、第1の眼球モデルの第1の中心点および第2の眼球モデルの第2の中心点を決定するステップを含む、側面193に記載の方法。
195.第1の眼球モデルまたは第2の眼球モデルから推測される付加的基準点を決定するステップをさらに含む、側面194に記載の方法。
196.付加的基準点は、第1の中心点と第2の中心点との間の線と垂直であって、かつ対象の頭部の長さと平行な軸と垂直である、線に沿ってある、側面195に記載の方法。
197.それぞれ対象の頭部の少なくとも一部を含む、複数の走査を整合させるためのシステムであって、対象の複数の走査を記憶するように構成される、非一過性メモリであって、複数の走査はそれぞれ、対象の頭部の少なくとも一部を含む、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、対象の複数の走査の第1の走査および第2の走査を整合させるようにプログラムされる、ハードウェアプロセッサとを備え、第1の走査および第2の走査を整合させるために、ハードウェアプロセッサは、(i)第1の走査からの、対象の第1の眼の第1の強膜の可視部分に基づく第1の基準点および対象の第2の眼の第2の強膜の可視部分に基づく第2の基準点と、(ii)第2の走査からの、第1の眼の第1の強膜の可視部分に基づく第1の基準点および第2の眼の第2の強膜の可視部分に基づく第2の基準点とを合致させるようにプログラムされる、システム。
198.第1の走査からの第1の眼の第1の基準点および第2の眼の第2の基準点は、第1の眼の第1の中心点および第2の眼の第2の中心点を含む、側面197に記載のシステム。
199.第2の走査からの第1の眼の第1の基準点および第2の眼の第2の基準点は、第1の眼の第1の中心点および第2の眼の第2の中心点を含む、側面197または側面198に記載のシステム。
200.第1の走査および第2の走査を整合させることは、第1の走査から第2の走査へのアフィン変換を決定することを含む、側面197−199のいずれか1項に記載のシステム。
201.第1の走査または第2の走査の一方または両方に関して、第1の眼球モデルを対象の第1の眼の第1の強膜の可視部分に適合させる、または第2の眼球モデルを対象の第2の眼の第2の強膜の可視部分に適合させることをさらに含む、側面197−199のいずれか1項に記載のシステム。
202.第1の眼球モデルを適合させること、または第2の眼球モデルを適合させることは、第1の眼球モデルの第1の中心点および第2の眼球モデルの第2の中心点を決定することを含む、側面201に記載のシステム。
203.第1の眼球モデルまたは第2の眼球モデルから推測される付加的基準点を決定することをさらに含む、側面202に記載のシステム。
204.付加的基準点は、第1の中心点と第2の中心点との間の線と垂直であって、かつ対象の頭部の長さと平行な軸と垂直である、線に沿ってある、側面203に記載のシステム。
205.それぞれ対象の頭部を含む、複数の走査を整合させるための方法であって、ハードウェアプロセッサの制御下で、複数の走査の第1の走査からの第1の眼の強膜と複数の走査の第2の走査からの第1の眼の強膜を整合させるステップと、複数の走査の第1の走査からの第2の眼の強膜と複数の走査の第2の走査からの第2の眼の強膜を整合させるステップとを含む、方法。
206.第1の眼の強膜のための第1の候補点を第1の走査から決定するステップと、第2の眼の強膜のための第2の候補点を第1の走査から決定するステップと、第1の眼球モデルを第1の候補点に適合させるステップと、第2の眼球モデルを第2の候補点に適合させるステップとを含む、側面205に記載の方法。
207.第1の眼球モデルの第1の中心を決定するステップと、第2の眼球モデルの第2の中心を決定するステップと、少なくとも部分的に、第1の中心および第2の中心に基づいて、推測される第3の点を決定するステップとを含む、側面206に記載の方法。
208.少なくとも部分的に、第1の中心、第2の中心、および推測される第3の点に基づいて、対象の頭部の姿勢の表現を決定するステップを含む、側面207に記載の方法。
209.それぞれ対象の頭部を含む、複数の走査を整合させるためのシステムであって、対象の頭部を含む、複数の走査を記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、複数の走査の第1の走査からの第1の眼の強膜と複数の走査の第2の走査からの第1の眼の強膜を整合させ、複数の走査の第1の走査からの第2の眼の強膜と複数の走査の第2の走査からの第2の眼の強膜を整合させるようにプログラムされる、ハードウェアプロセッサとを備える、システム。
210.ハードウェアプロセッサは、第1の眼の強膜のための第1の候補点を第1の走査から決定し、第2の眼の強膜のための第2の候補点を第1の走査から決定し、第1の眼球モデルを第1の候補点に適合させ、第2の眼球モデルを第2の候補点に適合させるようにプログラムされる、側面209に記載のシステム。
211.ハードウェアプロセッサは、第1の眼球モデルの第1の中心を決定し、第2の眼球モデルの第2の中心を決定し、少なくとも部分的に、第1の中心および第2の中心に基づいて、推測される第3の点を決定するようにプログラムされる、側面210に記載のシステム。
212.ハードウェアプロセッサは、少なくとも部分的に、第1の中心、第2の中心、および推測される第3の点に基づいて、対象の頭部の姿勢の表現を決定するようにプログラムされる、側面211に記載のシステム。
213.それぞれ頭部を含む、複数の走査を整合させるための方法であって、(i)複数の走査の第1の走査からの第1の左眼および第1の右眼に基づく、第1の左眼、第1の右眼、および第1の推測される第3の点と、(ii)複数の走査の第2の走査からの第2の左眼および第2の右眼に基づく、第2の左眼、第2の右眼、および第2の推測される第3の点とを整合させるステップを含む、方法。
214.少なくとも部分的に、第1の左眼と第1の右眼との間の線と、その線と垂直な軸とに基づいて、第1の推測される第3の点を決定するステップを含む、側面213に記載の方法。
215.少なくとも部分的に、第2の左眼と第2の右眼との間の線と、その線と垂直な軸とに基づいて、第2の推測される第3の点を決定するステップを含む、側面213または側面214に記載の方法。
216.整合させるステップは、アフィン変換を利用するステップを含む、側面213−215のいずれか1項に記載の方法。
217.アフィン変換に基づいて、対象のアバタのリギングを実施するステップをさらに含む、側面216に記載の方法。
218.それぞれ頭部を含む、複数の走査を整合させるためのシステムであって、対象の頭部を含む、複数の走査を記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、(i)複数の走査の第1の走査からの第1の左眼および第1の右眼に基づく、第1の左眼、第1の右眼、および第1の推測される第3の点と、(ii)複数の走査の第2の走査からの第2の左眼および第2の右眼に基づく、第2の左眼、第2の右眼、および第2の推測される第3の点とを整合させるようにプログラムされる、ハードウェアプロセッサとを備える、システム。
219.ハードウェアプロセッサは、少なくとも部分的に、第1の左眼と第1の右眼との間の線と、その線と垂直な軸とに基づいて、第1の推測される第3の点を決定するようにプログラムされる、側面218に記載のシステム。
220.ハードウェアプロセッサは、少なくとも部分的に、第2の左眼と第2の右眼との間の線と、その線と垂直な軸とに基づいて、第2の推測される第3の点を決定するようにプログラムされる、側面218または側面219に記載のシステム。
221.整合させるために、ハードウェアプロセッサは、アフィン変換を利用するようにプログラムされる、側面218−220のいずれか1項に記載のシステム。
222.ハードウェアプロセッサはさらに、アフィン変換に基づいて、対象のアバタのリギングを実施するようにプログラムされる、側面221に記載のシステム。
223.少なくとも部分的に、整合された走査のうちの1つ以上のものに基づいて、対象のアバタのリギングを実施するようにさらに構成される、前述の側面のいずれかのシステムまたは方法。
他の考慮点
本明細書に説明される、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、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つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。