以下の説明において、様々な実施形態のより完全な理解を提供するために多数の具体的詳細が明らかにされる。しかし、これらの具体的詳細の1つ以上を欠いて発明概念を実施してもよいことは当業者には明白であろう。
システム概要
図1は様々な実施形態の1つ以上の態様を実行するように構成された計算装置100を示す。1つの実施形態では、計算装置100はデスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、携帯情報端末(PDA)、タブレットコンピュータ、又は入力を受け取り、データを処理し、任意選択で画像を表示するように構成された任意の他のタイプの計算装置から成り、1つ以上の実施形態を実施するのに適している。計算装置100はメモリ116に常駐する訓練エンジン122と実行エンジン124を動作させるように構成される。
なお、本書に記載した計算装置は例示であり、任意の他の技術的に可能な構成は本開示の範囲に入る。例えば、訓練エンジン122及び実行エンジン124の複数のインスタンスが分散及び/又はクラウド計算システム内の一組のノード上で動作し、計算装置100の機能を実行しうる。別の例では、訓練エンジン122及び/又は実行エンジン124は様々な組のハードウェア、複数種類の装置、又は環境上で動作し、訓練エンジン122及び/又は実行エンジン124を様々な使用事例又は用途に適合させうる。第3の例では、訓練エンジン122及び実行エンジンは様々な計算装置及び/又は様々な組の計算装置上で動作しうる。
1つの実施形態では、計算装置100は限定されないが、1つ以上のプロセッサ102、1つ以上の入力/出力(I/O)装置108に結合された入力/出力(I/O)装置インターフェース104、メモリ116、記憶装置114、及びネットワークインターフェース106を接続する相互接続(バス)112を含む。プロセッサ102は中央処理装置(CPU)、グラフィック処理装置(GPU)、特定用途向け集積回路(ASIC)、フィールド・プログラム可能ゲートアレイ(FPGA)、人工知能(AI)アクセラレータ、任意の他のタイプの処理装置、又は異なる処理装置の組み合わせ、例えばGPUと一緒に動作するように構成されたCPUとして実現された任意の適切なプロセッサであってよい。一般にプロセッサ102はデータを処理し及び/又はソフトウェアアプリケーションを実行できる任意の技術的に可能なハードウェア装置であってよい。また、本開示の文脈において、計算装置100内の計算要素は物理的計算システム(例えば、データセンター内のシステム)に相当してもよく、又は計算クラウド内で動作する仮想計算インスタンスであってもよい。
I/O装置108は入力を提供できる装置、例えばキーボード、マウス、タッチ画面、マイクロホンなど及び出力を提供できる装置、例えば表示器を含む。また、I/O装置108は入力を受信し出力を提供できる装置、例えばタッチ画面、ユニバーサル・シリアルバス(USB)ポートなどを含んでもよい。I/O装置108は様々なタイプの入力を計算装置100の最終ユーザー(例えば、設計者)から受信し、また計算装置100の最終ユーザーに様々なタイプの出力、例えば表示されるデジタル画像又はデジタル映像又はテキストを提供するように構成されてもよい。幾つかの実施形態では、I/O装置108のうち1つ以上が計算装置100をネットワーク110に結合するように構成される。
ネットワーク110は、計算装置100とウェブサーバー又は別のネットワーク接続された計算装置などの外部実体又は装置の間のデータの交換を許す任意の技術的に可能なタイプの通信ネットワークである。例えば、ネットワーク110は広域ネットワーク(WAN)、ロ-カルエリアネットワーク(LAN)、無線(WiFi)ネットワーク、及び/又はインターネットなどを含んでよい。
記憶装置114はアプリケーション及びデータ用の不揮発性記憶装置を含み、固定又は取り外し可能ディスクドライブ、フラッシュメモリ装置、及びCD‐ROM、DVD‐ROM、Blu‐Ray、HD‐DVD、又は他の磁気、光学、又は固体記憶装置を含んでもよい。訓練エンジン122及び実行エンジン124は記憶装置114内に記憶され実行時メモリ116にロードされてもよい。
メモリ116はランダムアクセスメモリ(RAM)モジュール、フラッシュメモリ装置、又は任意の他のタイプのメモリ装置又はそれらの組み合わせを含む。プロセッサ102、I/O装置インターフェース104、及びネットワークインターフェース106はメモリ116からデータを読み出しメモリ116にデータを書き込むように構成される。メモリ116はプロセッサ102のよって実行されうる様々なソフトウェアプログラム(訓練エンジン122及び実行エンジン124を含む)とソフトウェアプログラムと関連するアプリケーションデータとを含む。
幾つかの実施形態では、訓練エンジン122は1つ以上の機械学習モデルを訓練して従来のメディアコンテンツを物理空間に取り込んだ拡張現実(AR)環境を生成する。例えば、訓練エンジン122は1つ以上の神経回路網を訓練して画像及び/又は映像に描かれた2次元(2D)場面を部屋の壁、天井、床、及び/又は他の表面に亘って拡張できる。訓練エンジン122はまた、又は代りに1つ以上の神経回路網を訓練して2D場面の物体、色、形状、風合い、構造、及び/又は他の属性を部屋のレイアウト内に取り込んだ3次元(3D)ボリュームを生成する。
実行エンジン124は訓練された機械学習モデルを使って従来のメディアコンテンツを物理空間のレイアウトと結合するAR環境を生成する。例えば、実行エンジン124は部屋の物理的レイアウトと、場面を描く画像又は映像を含むアンカーコンテンツとを訓練された神経回路網に入力できる。実行エンジン124は訓練された神経回路網を使って椅子、テーブル、窓、ドア、及び/又は他の物体をその部屋内に通常の状態で描き、その場面を部屋の壁、天井、床、及び/又は他の表面に亘って拡張しうる。実行エンジン124はまた、又は代りに訓練された神経回路網を使って、2D場面の物体、色、形状、風合い、及び/又は他の属性の2D及び/又は3D表現をその部屋内に配置した3Dボリュームを生成できる。
アンカーコンテンツから拡張現実環境のニューラル生成
図2Aは様々な実施形態に係る図1の訓練エンジン122及び実行エンジン124のより詳細な図である。より具体的には、図2Aは機械学習モデル200を使用して物理空間のレイアウト232に亘って一組のアンカーコンテンツ230を拡張するAR環境290を生成する時の訓練エンジン122及び実行エンジン124の動作を示す。
アンカーコンテンツ230はAR環境290に取り込まれうる任意のタイプのメディアの1つ以上の断片を含む。例えば、特定の一組のアンカーコンテンツ230は、現実世界状況に重ねられ及び/又は結合されてAR環境290を生成しうる単一の画像、複数の画像、1つ以上の映像フレーム、1つ以上の視覚化、1つ以上の3Dモデル、1つ以上の音声ファイル、1つ以上のテキスト列、及び/又は別のタイプのデジタルコンテンツを含みうる。
1つ以上の実施形態では、アンカーコンテンツ230はAR環境290に取り込まれた物理空間内に出力され及び/又は捉えられる。例えば、アンカーコンテンツ230は、画像、映像、音、及び/又は物理空間に対応する部屋内のテレビ、映写機、表示器、スピーカー、及び/又は別のタイプの出力装置によって出力される別のタイプのメディアコンテンツを含みうる。別の例では、アンカーコンテンツ230は絵画、写真、壁画、彫刻、音、及び/又はその部屋に存在する又は検出される別のタイプの対象物又は現象を含みうる。アンカーコンテンツ230は、アンカーコンテンツ230を表示する前に既知の画像を出力装置に表示することを伴う校正プロセスにおいて及び/又は別の方法において、AR環境290と対話するユーザーによって境界ボックス又は囲いを使って追加で指定されうる。
アンカーコンテンツ230はまた、又は代りにアンカーコンテンツ230がそれに亘って拡張される物理空間と別に存在しうる。例えば、アンカーコンテンツ230は1つ以上のファイルとして指定されうり、それらのファイルはデータ記憶から取り出されAR環境290に取り込まれうる1つ以上の画像、映像、音声、3Dモデル、テキスト、及び/又は別のタイプのコンテンツを含む。別の例では、AR環境290と対話するユーザーは、タッチ画面及び/又は別のタイプの入力装置を使ってアンカーコンテンツ230を描くことでアンカーコンテンツ230を生成及び/又は更新できる。
機械学習モデル200は空間区分回路網202、コンテンツ区分回路網204、及び外挿回路網206を含む。幾つかの実施形態では、空間区分回路網202、コンテンツ区分回路網204、及び外挿回路網206は神経回路網及び/又は他のタイプの機械学習モデルとして実現される。例えば、空間区分回路網202、コンテンツ区分回路網204、及び外挿回路網206は、これらに限定されないが1つ以上の畳み込み神経回路網、完全接続神経回路網、再帰型神経回路網、残差神経回路網、トランスフォーマー神経回路網、自己符号化器、変分自己符号化器、敵対的生成回路網、自己回帰モデル、双方向注意モデル、混合モデル、拡散モデル、及び/又はコンテンツを処理及び/又は生成できる他のタイプの機械学習モデルを含みうる。
より具体的には、機械学習モデル200はアンカーコンテンツ230及びレイアウト232に基づいてAR環境290に取り込まれる出力2Dコンテンツ238を生成する。レイアウト232は物理空間内の物体234(1)~234(X)(それぞれ個々に物体234と呼ぶ)の位置及び/又は向きを含む。例えば、レイアウト232は部屋の2D又は3Dマップを含みうる。そのマップは部屋を壁、床、天井、ドア、テーブル、椅子、敷物、窓、及び/又は部屋内の他の物体に対応する複数の領域に区分した意味上区分(semantic segmentation)を含む。
1つ以上の実施形態では、レイアウト232は物理空間に関連するセンサーデータ228に基づいて空間区分回路網202によって生成される。例えば、センサーデータ228は物理空間の画像、深度マップ、点群、及び/又は別の表現を含みうる。センサーデータ228は物理空間内及び/又は近傍の拡張現実装置及び/又は別のタイプの計算装置上のカメラ、慣性センサー、深度センサー、及び/又は他のタイプのセンサーによって収集されうる。センサーデータ228はまた、物理空間の仮想ツインに対応する2D又は3Dモデルを生成するのに使用されうる。センサーデータ228及び/又は仮想ツインは空間区分回路網202に入力されうり、センサーデータ228及び/又は仮想ツイン内の個々の構成要素(例えば、画素位置、点群内の点など)、位置、又は領域についての物体の予測及び/又は物体の部類が空間区分回路網202の出力として得られうる。
幾つかの実施形態では、アンカーコンテンツ230はコンテンツ区分回路網204によって同様に処理されコンテンツ区分294を生成する。例えば、アンカーコンテンツ230内の1つ以上の画像はコンテンツ区分回路網204に入力されうり、コンテンツ区分294が、画像の個々の画素位置及び/又は他の部分集合についてコンテンツ区分回路網204によって生成された物体の予測及び/又は物体の部類(例えば、前景、背景、雲、星、物体、動物、植物、顔、構造、形状、状況など)として得られうる。
アンカーコンテンツ230、センサーデータ228、レイアウト232、及び/又はコンテンツ区分294は入力として外挿回路網206に提供される。入力に応答して、外挿回路網206は入力されたデータの様々な部分の潜在表現236(1)~236(Y)(それぞれ個別に潜在表現236と呼ぶ)を生成する。外挿回路網206はまた、潜在表現236を複数の画像240(1)~240(Z)(それぞれ個別に画像240と呼ぶ)を含む出力2Dコンテンツ238に変換する。
幾つかの実施形態では、出力2Dコンテンツ238内の各画像240は、物理空間の1つ以上の部分を表し、アンカーコンテンツ230の意味論上有意義な拡張を物理空間内に描く。例えば、出力2Dコンテンツ238は標準箱形部屋を表す立方体の6つの面に対応する6つの画像240を含みうる。別の例では、出力2Dコンテンツ238は箱形部屋に限定されない物理空間の360度、球形、及び/又は別のタイプのパノラマビューを描く1つ以上の画像240を含みうる。両方の例で、各画像240はその部屋内の現実世界物体、例えば(これらに限定されないが)ドア、窓、家具、及び/又は装飾を含みうる。各画像240はまた、部屋の壁、床、天井、及び/又は他の表面上に重ねられたアンカーコンテンツ230の様々な部分集合(コンテンツ区分294において特定される)を含みうる。アンカーコンテンツ230のこれらの構成要素はまた、対応する画像240内に配置又は分散されうり、部屋内のドア、窓、家具、装飾、及び/又は他のタイプの物体を遮る及び/又は部分的に重なるのを避ける。
訓練エンジン122は機械学習モデル200を一組のグラウンド現状データ区分(ground truth segmentations)208、一組の訓練センサーデータ210、及び一組の訓練アンカーコンテンツ212を含む訓練データ214を使って訓練する。訓練センサーデータ210は様々なタイプの物理空間の画像、点群、及び/又は視覚及び/又は空間属性の他のデジタル表現を含む。例えば、訓練センサーデータ210は様々な建築様式及びレイアウトの部屋又は建物、屋外都市空間、地下空間、自然環境、及び/又は他の物理的環境の2D及び/又は3D表現を含みうる。
訓練アンカーコンテンツ212は訓練センサーデータ210と結合されAR環境(例えば、AR環境290)を生成しうる画像、映像、音声、及び/又は他のコンテンツを含む。アンカーコンテンツ230と同様、訓練アンカーコンテンツ212は訓練センサーデータ210内に(例えば、対応する物理空間の一部として)描かれ及び/又は取り込まれ、及び/又は訓練センサーデータ210から分離して取り出されうる(例えば、データ記憶からのデジタルファイルのように)。
グラウンド現状データ区分208は訓練センサーデータ210及び/又は訓練アンカーコンテンツ212と関連するラベルを含む。例えば、グラウンド現状データ区分208は、訓練センサーデータ210によって表される物理空間内に見つかりうる床、壁、天井、照明器具、家具、装飾、ドア、窓、及び/又は他の物体を表すラベルを含みうる。これらのラベルは訓練センサーデータ210内の画素領域、3D点、格子、部分格子、及び/又は他のデータ要素に割り当てられうる。別の例では、グラウンド現状データ区分208は訓練アンカーコンテンツ212内に見つかる又は表される前景、背景、風合い、物体、形状、構造、人物、顔、動物、植物、状況、及び/又は他の実体を表すラベルを含みうる。これらのラベルは訓練アンカーコンテンツ212の画素領域、音声サンプル、3Dモデル、及び/又は他の要素又は部分に割り当てられうる。グラウンド現状データ区分208は全ての組の訓練センサーデータ210及び/又は訓練アンカーコンテンツ212に対して利用可能でありうり、機械学習モデル200の1つ以上の構成要素の完全教師あり訓練を可能にするか、又はグラウンド現状データ区分208は訓練センサーデータ210及び/又は訓練アンカーコンテンツ212の部分集合に対して利用可能でありうり、構成要素の半教師あり及び/又は弱教師あり訓練を可能にする。
図2Aに示すように、訓練エンジン122は訓練センサーデータ210を空間区分回路網202に入力して空間区分回路網202の対応する出力として一組の訓練空間区分222を得る前方パスを実行する。前方パスの間、訓練エンジン122はまた、訓練アンカーコンテンツ212をコンテンツ区分回路網204に入力してコンテンツ区分回路網204の対応する出力として一組の訓練コンテンツ区分224を得る。訓練空間区分222は訓練センサーデータ210内のデータ要素に関連するクラスの予測を含み、訓練コンテンツ区分224は訓練アンカーコンテンツ212内のデータ要素に関連するクラスの予測を含む。例えば、訓練空間区分222は、物理空間を表す訓練センサーデータ210の画素領域、3D点、及び/又は他の部分について、物理空間内に見つかりうる床、壁、天井、照明器具、家具、装飾、ドア、窓、及び/又は他の物体を表すクラスの予測される確率を含みうる。訓練コンテンツ区分224は、訓練アンカーコンテンツ212の様々な領域又は部分内に見つかる又は表される前景、背景、風合い、物体、形状、構造、人々、人物、顔、身体部位、動物、植物、及び/又は他の実体を表すクラスの予測される確率を含みうる。
前方パスの間、訓練エンジン122はまた、外挿回路網206を使用して訓練空間区分222及び訓練コンテンツ区分224の複数のペアを拡張現実ビューを表す2D訓練出力226に変換する。拡張現実ビューは訓練センサーデータ210及び対応する訓練空間区分222によって表される物理空間の属性を訓練アンカーコンテンツ212及び対応する訓練コンテンツ区分224の属性と結合する。例えば、訓練エンジン122は部屋に対する一組の訓練センサーデータ210、空間区分回路網202によってその一組の訓練センサーデータ210から生成された対応する訓練空間区分、訓練アンカーコンテンツ212の一断片、及び/又はコンテンツ区分回路網204によって訓練アンカーコンテンツ212のその一断片から生成された訓練コンテンツ区分を外挿回路網206に入力する。入力に応答して、外挿回路網206は、入力された訓練センサーデータ210に関連する視覚及び意味属性を入力された訓練アンカーコンテンツ212に関連する視覚及び意味属性と結合する複数の画像(例えば、画像240)を生成できる。各画像は平壁のある部屋の異なる表面及び/又は任意の形状の物理空間(例えば、非箱形部屋、起伏のある空間、屋外空間など)に関連するパノラマビューの1つ以上の部分を表しうる。
前方パスが完了すると、訓練エンジン122は訓練データ214と、空間区分回路網202、コンテンツ区分回路網204、及び/又は外挿回路網206によって生成された出力とに基づいて複数の損失を計算する。より具体的には、訓練エンジン122は空間区分回路網202によって訓練センサーデータ210から生成された訓練空間区分222と対応するグラウンド現状データ区分208の間の1つ以上の区分損失218を計算する。訓練エンジン122はまた、又は代りにコンテンツ区分回路網204によって訓練アンカーコンテンツ212から生成された訓練コンテンツ区分224と対応するグラウンド現状データ区分208の間の1つ以上の区分損失218を計算する。これらの区分損失218は、これらに限定されないが、クロスエントロピー損失、さいころ損失、境界損失、Tversky損失、及び/又は空間区分回路網202及び/又はコンテンツ区分回路網204によって生成された特定の区分と対応するグラウンド現状データ区分の間の誤差の別の計測値を含みうる。
訓練エンジン122はまた、又は代りに訓練アンカーコンテンツ212の一断片と外挿回路網206によって訓練アンカーコンテンツ212のその一断片及び一組の訓練センサーデータ210から生成された2D訓練出力226の間の1つ以上の類似性損失216を計算する。幾つかの実施形態では、類似性損失216は訓練アンカーコンテンツ212と物理空間内の訓練アンカーコンテンツ212の拡張に対応する2D訓練出力226部分の間の視覚類似性を計測する。
例えば、訓練エンジン122はグラウンド現状データ区分208を使って、訓練アンカーコンテンツ212がそれに亘って重ねられ又は拡張される物理空間のある領域(例えば、1つ以上の壁、天井、床など)を特定できる。これらの領域は得られる2D訓練出力226が生成されるやり方を制御するために指定及び/又は選択されうる。訓練エンジン122はこれらの領域に関連するマスクを2D訓練出力226に適用してこれらの領域外にある2D訓練出力226の部分を取り除きうる。訓練エンジン122はL1損失、L2損失、平均2乗誤差、Huber損失、及び/又は他の類似性損失216を訓練アンカーコンテンツ212の様々な構成要素の視覚属性(例えば、形状、色、パターン、画素値、線太さ、等高線など)と残りの2D訓練出力226の視覚属性の間の類似性又は差異の計測値として計算しうる。訓練エンジン122はまた、又は代りに残りの2D訓練出力226を第1組の潜在表現に変換しうり(例えば、外挿回路網206の1つ以上の部品及び/又は予め訓練された特徴抽出器を残りの2D訓練出力226に適用することで)、1つ以上の類似性損失216を前記第1組の潜在表現と訓練アンカーコンテンツ212に関連する第2組の潜在表現(例えば、外挿回路網206及び/又は予め訓練された特徴抽出器によって訓練アンカーコンテンツ212から生成された潜在表現236)の間の類似性又は差異の計測値として計算しうる。その結果、類似性損失216は機械学習モデル200が物理空間のある部分又は領域への訓練アンカーコンテンツ212の拡張を生成するよう学習することを保証するのに使用されうる。
訓練エンジン122はまた、又は代りに2D訓練出力226と、対応する訓練センサーデータ210及び/又は訓練アンカーコンテンツ212に関連するグラウンド現状データ区分208の間の1つ以上のレイアウト損失220を計算する。1つ以上の実施形態では、レイアウト損失220は2D訓練出力226が訓練アンカーコンテンツ212の意味論上有意義な拡張を訓練センサーデータ210が表す物理空間に亘って描く程度を計測する。
例えば、訓練エンジン122はグラウンド現状データ区分208を使って一組の訓練センサーデータ210によって表さる部屋内の様々な物体(例えば、壁、天井、床、家具、装飾、窓、ドアなど)を特定できる。訓練エンジン122はまた、グラウンド現状データ区分208を使ってその部屋について2D訓練出力226に描かれるべき物体(例えば、訓練アンカーコンテンツ212が遮りも置き換わりもするべきでないドア、窓、家具、及び/又は他の物体)の領域を特定するマスクを生成できる。これらの領域は得られる2D訓練出力226が生成されるやり方を制御するために指定及び/又は選択されうる。訓練エンジン122はマスクを2D訓練出力226に適用してこれらの領域外にある2D訓練出力226の部分を取り除きうる。訓練エンジン122は次に、L1損失、L2損失、平均2乗誤差、Huber損失、及び/又は他のレイアウト損失220を残りの2D訓練出力226の視覚属性(例えば、形状、色、パターン、画素値など)と訓練センサーデータ210内の対応する物体の視覚属性の間の類似性又は差異の計測値として計算しうる。訓練エンジン122はまた、又は代りに残りの2D訓練出力226を第1組の潜在表現に変換しうり(例えば、外挿回路網206の1つ以上の部品及び/又は予め訓練された特徴抽出器を残りの2D訓練出力226に適用することで)、1つ以上のレイアウト損失220を前記第1組の潜在表現と訓練センサーデータ210内の対応する物体に関連する第2組の潜在表現(例えば、外挿回路網206及び/又は予め訓練された特徴抽出器によってこれらの物体を描く又は表す訓練センサーデータ210の部分から生成された潜在表現236)の間の類似性又は差異の計測値として計算しうる。言い換えると、レイアウト損失220は2D訓練出力226が対応する位置にこれらの物体の正確及び/又は完全な描写を含むことと、部屋のARビュー内への訓練アンカーコンテンツ212のどんな重なり又は拡張もこれらの物体を遮らないこととを保証するのに使用されうる。
1つ以上の実施形態では、レイアウト損失220は2D訓練出力226のフレームに亘る意味及び/又は空間一貫性を保証するのに使用される。例えば、2D訓練出力226は訓練センサーデータ210によって表される物理空間に亘って訓練アンカーコンテンツ212内の対応する映像フレームの拡張を描く複数のフレームを含みうる。訓練エンジン122は2D訓練出力226内の1つ以上の前のフレーム、対応する訓練空間区分222、対応する訓練コンテンツ区分224、及び/又は訓練アンカーコンテンツ212の対応するフレームを追加の入力として空間区分回路網202、コンテンツ区分回路網204、及び/又は外挿回路網206に提供して、訓練アンカーコンテンツ212の現在フレームからの2D訓練出力226の現在フレームの生成を通知しうる。訓練エンジン122はまた、2D訓練出力226の連続するフレーム間の又はに亘る1つ以上のレイアウト損失220を計算して訓練アンカーコンテンツ212内の映像フレーム内の物体又は動画が跳ね回ったり不規則に変動したりすることなく物理空間内の概ね同じ位置に描かれ又は拡張されることを保証できる。
次に訓練エンジン122は、類似性損失216、区分損失218、及び/又はレイアウト損失220の様々な並べ替え又は組み合わせを使って空間区分回路網202、コンテンツ区分回路網204、及び/又は外挿回路網206のパラメータを更新する後方パスを実行する。例えば、訓練エンジン122は訓練手法(例えば、勾配降下及び逆伝播)を使用して、訓練空間区分222と対応するグラウンド現状データ区分208の間で計算された区分損失218に基づいて空間区分回路網202のパラメータを更新できる。訓練エンジン122はまた、訓練コンテンツ区分224と対応するグラウンド現状データ区分208の間で計算された区分損失218に基づいてコンテンツ区分回路網204のパラメータを更新できる。空間区分回路網202及びコンテンツ区分回路網204の訓練が完了すると、訓練エンジン122は空間区分回路網202及びコンテンツ区分回路網204のパラメータを凍結し、レイアウト損失220及び/又は類似性損失216に基づいて外挿回路網206を訓練できる。訓練エンジン122はまた、区分損失218、レイアウト損失220、及び/又は類似性損失216が対応する閾値未満になるまで、区分損失218に基づいて空間区分回路網202とコンテンツ区分回路網204の訓練を交互させ、レイアウト損失220及び/又は類似性損失216に基づいて外挿回路網206を訓練し続ける。
別の例では、訓練エンジン122はレイアウト損失220、類似性損失216、及び/又は2D訓練出力226に基づいて計算された他の損失を使って空間区分回路網202、コンテンツ区分回路網204、及び外挿回路網206の終端間訓練を実行できる。この終端間訓練は空間区分回路網202及びコンテンツ区分回路網204が対応する区分損失218に基づいて訓練された後に、空間区分回路網202及びコンテンツ区分回路網204の区分損失218に基づく訓練と交互に、及び/又は別のやり方で実行されうる。
訓練エンジン122の動作をあるタイプの損失に関して上記で説明したが、空間区分回路網202、コンテンツ区分回路網204、及び/又は外挿回路網206は他のタイプの手法、損失、及び/又は機械学習構成要素を使って訓練されうることは理解されるであろう。例えば、訓練エンジン122は空間区分回路網202、コンテンツ区分回路網204、及び/又は外挿回路網206を敵対的なやり方で1つ以上の弁別器神経回路網(不図示)を用い弁別器神経回路網によって生成された予測に基づいてグラウンド現状データ区分208、訓練空間区分222、訓練コンテンツ区分224、及び/又は2D訓練出力226から計算される1つ以上の弁別器損失を使用して訓練できる。別の例では、訓練エンジン122は空間区分回路網202、コンテンツ区分回路網204、及び/又は外挿回路網206を2D訓練出力226に芸術家指針又はパラメータを反映させる1つ以上の損失を使用して訓練できる。この芸術家指針又はパラメータは対称、平衡、色、向き、規模、スタイル、訓練センサーデータ210によって表される物理空間に亘る訓練アンカーコンテンツ212の動き、訓練センサーデータ210によって表される物理空間内に描かれた又は置かれた訓練アンカーコンテンツ212内の物体のサイズ、及び/又は訓練アンカーコンテンツ212が訓練センサーデータ210によって表される物理空間に亘って描かれる又は拡張されるやり方に影響する他の属性に関連する。第3の例では、訓練エンジン122は訓練アンカーコンテンツ212の特定の断片を様々な物理空間に亘って拡張することを学習するように空間区分回路網202、コンテンツ区分回路網204、及び/又は外挿回路網206を訓練できる。
機械学習モデル200の訓練が完了した後、実行エンジン124は訓練された機械学習モデル200の1つ以上の構成要素を使って出力2Dコンテンツ238を生成する。特に、実行エンジン124は空間区分回路網202を使って物理空間から収集したセンサーデータ228(例えば、画像、点群、深度マップなど)をその物理空間内の物体234の位置を特定する意味上レイアウト232に変換する。実行エンジン124はまた、アンカーコンテンツ230(例えば、画像、絵画、映像など)をユーザーによって選択されるセンサーデータ228の一領域として、及び/又はセンサーデータ228とは別に存在する1つ以上の画像、映像、又は音声ファイルとして受け取る。実行エンジン124はコンテンツ区分回路網204を使ってアンカーコンテンツ230を対応するコンテンツ区分294に変換する。実行エンジン124は次に外挿回路網206を使って、レイアウト232及び/又はコンテンツ区分294を使用して特定されたアンカーコンテンツ230の部分内の物体234の潜在表現236を生成する。実行エンジン124はまた、外挿回路網206を使って出力2Dコンテンツ238を潜在表現236及び/又は追加の入力、例えばAR環境290を提供する計算装置の位置及び向きなどに基づいて生成する(例えば、潜在表現236をサンプリングする、変換する、相関させる、又は他の処理をすることで)。上述したように、出力2Dコンテンツ238はあるタイプの物体234(例えば、ドア、窓、家具、装飾など)を物理空間内のそれぞれの位置に描く画像240と物理空間内の他のタイプの物体234(例えば、壁、床、天井など)に亘るアンカーコンテンツ230の拡張及び/又は重ねとを含む。画像240はまた、ある視点、例えばセンサーデータ228が収集された視点から物体234を描きうる。
実行エンジン124はまた、出力2Dコンテンツ238をAR環境290に取り込む。例えば、実行エンジン124はAR環境290を提供するARシステムによって生成された視覚、音声、及び/又は他の出力に画像240を取り込みうり、その結果、AR環境290は、ARシステムと対話するユーザーの視点からアンカーコンテンツ230の意味論上有意義な拡張を物理空間に亘って描くように見える。ユーザーがARシステムの視点を変える及び/又はアンカーコンテンツ230を更新する時(例えば、アンカーコンテンツ230の追加部分を描く、アンカーコンテンツ230をトリミング、縮小/拡大、及び/又は変形する、アンカーコンテンツ230の色バランス、飽和、色温度、露光、輝度、及び/又は他の色関連の属性を変更する、アンカーコンテンツ230のビューを変更する、異なるファイルからアンカーコンテンツ230をロードする、アンカーコンテンツ230の複数のフレームを含む映像又は動画を再生するなどにより)、実行エンジン124は更新されたアンカーコンテンツ230及び/又は物理空間の最新ビュー又は表現を反映する追加のセンサーデータ228を受信し、追加のセンサーデータ228から新しいレイアウト232を及び/又は新しいアンカーコンテンツ230から新しいコンテンツ区分294を生成し、新しい視点に関連する物体234及びアンカーコンテンツ230の拡張を描く新しい出力2Dコンテンツ238を生成できる。その結果、実行エンジン124はセンサーデータ228及び/又はアンカーコンテンツ230の変化に連続して応答する没入型AR環境290を生成する。
幾つかの実施形態では、出力2Dコンテンツ238は他のタイプの没入型環境、例えば仮想現実(VR)及び/又は複合現実(MR)環境などにおいて使用される。このコンテンツは個人の身元、ユーザー履歴、資格、財産、及び/又は報酬などのデータの連続性を提供しながら、任意の数のユーザーが同期して持続的に体験できる仮想世界を描きうる。なお、このコンテンツは従来の視聴覚コンテンツ及び完全に没入型VR、AR、及び/又はMR体験の混成、例えば双方向ビデオを含みうる。
図2Bは様々な実施形態に係る図1の訓練エンジン122及び実行エンジン124のより詳細な図である。より具体的には、図2Bは機械学習モデル280を使用して出力3Dボリューム284を含むAR環境292を生成する時の訓練エンジン122及び実行エンジン124の動作を示す。出力3Dボリューム284内で、一組のアンカーコンテンツ296から得られる3D物体286(1)~286(C)(それぞれ個別に3D物体286と呼ぶ)は物理空間のレイアウト276内に意味論上有意義なやり方で配置される。
図2Aのアンカーコンテンツ230のように、特定の一組のアンカーコンテンツ296はAR環境292に取り込まれうる任意のタイプのメディアの1つ以上の断片を含む。例えば、アンカーコンテンツ296は画像、画像列、映像、音声、テキスト、及び/又は現実世界状況に重ね及び/又は結合されAR環境292となりうる別のタイプのデジタルコンテンツを含みうる。別の例では、アンカーコンテンツ296は1つ以上の3D動画、3Dモデル、及び/又はAR環境292と共に使用されうる他のタイプの3Dコンテンツを含みうる。
1つ以上の実施形態では、アンカーコンテンツ296はAR環境292内に取り込まれた物理空間内に出力及び/又は捕捉される。例えば、アンカーコンテンツ296は写真、絵画、及び/又はテレビ、映写機、表示器、及び/又は部屋内の別の視覚出力装置によって出力される2D又は3D映像を含みうる。別の例では、アンカーコンテンツ296は部屋に存在又は検出される絵画、写真、壁画、彫刻、音、及び/又は別の物理実体を含みうる。アンカーコンテンツ296は、アンカーコンテンツ296を表示する前に既知の画像を出力装置に表示することを伴う校正プロセスにおいて及び/又は別の方法においてAR環境292と対話するユーザーによって境界ボックス又は囲いを使って指定されうる。
アンカーコンテンツ296はまた、又は代りにアンカーコンテンツ296が配置される物理空間とは別に存在しうる。例えば、アンカーコンテンツ296は画像、映像、音声、テキスト、3Dモデル、及び/又はデータ記憶から取り出されAR環境292に取り込まれうる別のタイプのコンテンツを含むファイルとして指定されうる。別の例では、AR環境292と対話するユーザーは、1つ以上のトリミング、縮小/拡大、回転、平行移動、色調整、及び/又は描画操作によりアンカーコンテンツ296を生成及び/又は更新できる。
機械学習モデル280は空間区分回路網242、コンテンツ区分回路網244、及び3D合成回路網246を含む。幾つかの実施形態では、空間区分回路網242、コンテンツ区分回路網244、及び3D合成回路網246は神経回路網及び/又は他のタイプの機械学習モデルとして実現される。例えば、空間区分回路網242、コンテンツ区分回路網244、及び3D合成回路網246は、これらに限定されないが1つ以上の畳み込み神経回路網、完全接続神経回路網、再帰型神経回路網、残差神経回路網、トランスフォーマー神経回路網、自己符号化器、変分自己符号化器、敵対的生成回路網、自己回帰モデル、双方向注意モデル、混合モデル、拡散モデル、神経放射輝度フィールドモデル、及び/又はコンテンツを処理及び/又は生成できる他のタイプの機械学習モデルを含みうる。
幾つかの実施形態では、機械学習モデル280は出力3Dボリューム284をアンカーコンテンツ296及びレイアウト276に基づいて生成する。幾つかの実施形態では、レイアウト276は物理空間内の物体278(1)~278(A)(それぞれ個別に物体278と呼ぶ)の3D位置、向き、及び/又は表現を含む。例えば、レイアウト276は1つ以上のカメラ、深度センサー、及び/又は他のタイプのセンサーによって捕捉された部屋の1つ以上の格子、点群、風合い、及び/又は他の3D表現を含みうる。3D表現の様々な部分又は部分集合は、更に区分又はラベル付けされ物体、例えば壁、床、天井、ドア、テーブル、椅子、敷物、窓、及び/又は部屋内の他の物体を表しうる。
1つ以上の実施形態では、レイアウト276は空間区分回路網242によって物理空間に関連するセンサーデータ274に基づいて生成される。例えば、センサーデータ274は物理空間の画像、深度マップ、点群、格子、風合い、及び/又は他の3D表現を含みうる。センサーデータ274は物理空間内又は近傍の拡張現実装置及び/又は別のタイプの計算装置のセンサーによって収集されうる。センサーデータ274はまた、物理空間の仮想ツインに対応する3Dモデルを生成するために使用されうる。センサーデータ274及び/又は仮想ツインは空間区分回路網242に入力されうり、そのデータ内の個々の要素(例えば、画素位置、点群内の点など)、位置、又は領域について物体の予測及び/又は物体の部類が空間区分回路網242の対応する出力として得られうる。
幾つかの実施形態では、アンカーコンテンツ296は同様にコンテンツ区分回路網244によって処理されコンテンツ区分282を生成する。例えば、アンカーコンテンツ296内の1つ以上の画像はコンテンツ区分回路網244に入力されうり、コンテンツ区分282は、画像内の個々の画素位置及び/又は他のデータ要素についてコンテンツ区分回路網244によって生成された物体の予測及び/又は物体の部類(例えば、前景、背景、雲、星、物体、動物、顔、構造、形状など)として得られうる。
上述したように、アンカーコンテンツ296はまた、個別の3D物体286及び/又は出力3Dボリューム284内に個別に配置又は取り込まれうる他の様々な構成要素を含みうる。例えば、アンカーコンテンツ296は様々な仮想人物、顔、木、建物、家具、雲、星、及び/又は他の物体についての別々の3Dモデルを含みうる。この例では、コンテンツ区分282は省略されるか、又は各3Dモデルに対して実行され更に対応する物体又は実体の下位構成要素(例えば、車の3Dモデルのハンドル、窓、車台、ドア、及び/又は他の部品)を特定できる。
アンカーコンテンツ296、センサーデータ274、レイアウト276、及び/又はコンテンツ区分282が入力として3D合成回路網246に提供される。入力に応答して、3D合成回路網246は入力されたデータの様々な部分の潜在表現288(1)~288(B)(それぞれ個別に潜在表現288と呼ぶ)を生成する。3D合成回路網246はまた、潜在表現288を出力3Dボリューム284に変換する。
幾つかの実施形態では、出力3Dボリューム284はセンサーデータ274に関連する物理空間の3D表現を含む。3D表現内で、アンカーコンテンツ296から得られた3D物体286は物理空間内に意味論上有意義なやり方で配置される。例えば、出力3Dボリューム284は3D合成回路網246によって生成された神経放射輝度フィールドによって表されうる。神経放射輝度フィールドは物理空間内の現実世界物体278、例えばドア、窓、家具、及び/又は装飾の3D表現を含みうる。神経放射輝度フィールドはまた、アンカーコンテンツ296の様々な構成要素(コンテンツ区分282で特定される)に対応する3D物体286を含みうる。アンカーコンテンツ296のこれらの構成要素はまた、出力3Dボリューム284内に配置又は分散されうり、部屋内のドア、窓、家具、装飾、及び/又は他の現実世界物体を遮る及び/又は部分的に重なるのを避ける。アンカーコンテンツ296のこれらの構成要素はまた、又は代りに部屋内の現実世界物体と相互作用するように配置され及び/又はアニメ化される。
訓練エンジン122は一組のグラウンド現状データ区分248、一組の訓練センサーデータ250、一組の訓練アンカーコンテンツ252、及び/又は一組の訓練3D物体254を含む訓練データ298を使って機械学習モデル280を訓練する。訓練センサーデータ250は部屋、建物、都市環境、自然環境、地下環境、及び/又は他のタイプの物理空間の視覚及び/又は空間属性の画像、点群、及び/又は他のデジタル表現を含む。訓練センサーデータ250はまた、又は代りに物理空間の画像、点群、格子、風合い、及び/又は他の視覚又は空間属性を使って構成された物理空間のデジタルツインを含む。
訓練アンカーコンテンツ252は訓練センサーデータ250と結合されAR環境(例えば、AR環境292)を生成しうる画像、映像、音声、及び/又は他のコンテンツを含む。アンカーコンテンツ296と同様に、訓練アンカーコンテンツ252は訓練センサーデータ250に描かれ及び/又は捕捉され(例えば、対応する物理空間の一部として)及び/又は訓練センサーデータ250とは別に取り出されうる(例えば、データ記憶からのデジタルファイルとして)。
グラウンド現状データ区分248は訓練センサーデータ250及び/又は訓練アンカーコンテンツ252に関連するラベルを含む。例えば、グラウンド現状データ区分248は訓練センサーデータ250によって表される物理空間内に見つかりうる床、壁、天井、照明器具、家具、装飾、ドア、窓、及び/又は他の物体を表すラベルを含みうる。これらのラベルは訓練センサーデータ250内の画素領域、3D点、格子、部分格子、及び/又は他のデータ要素に割り当てられうる。別の例では、グラウンド現状データ区分248は、訓練アンカーコンテンツ252内に見つかる又は表される前景、背景、風合い、物体、形状、構造、人々、人物、顔、身体部位、動物、植物、及び/又は他の実体を表すラベルを含みうる。これらのラベルは訓練アンカーコンテンツ252の画素領域、点群、格子、部分格子、音声トラック又はチャネル、及び/又は他の要素又は部分に割り当てられうる。グラウンド現状データ区分248は全ての組の訓練センサーデータ250及び/又は訓練アンカーコンテンツ252に対して利用可能であり機械学習モデル280の1つ以上の構成要素の完全教師あり訓練を可能にしうるか、又はグラウンド現状データ区分248は訓練センサーデータ250及び/又は訓練アンカーコンテンツ252の一部の組に対して利用可能でありそれらの構成要素の半教師あり及び/又は弱教師あり訓練を可能にしうる。
訓練3D物体254は訓練アンカーコンテンツ252の3D表現を含む。例えば、訓練アンカーコンテンツ252は3Dモデル又は場面の2D表現を描く画像又は映像を含みうり、訓練3D物体254は3Dモデル又は場面を含みうる。言い換えると、訓練3D物体254は訓練アンカーコンテンツ252内の物体のグラウンド現状データ3D表現として使用されうる。
幾つかの実施形態では、幾つか又は全ての訓練3D物体254は訓練アンカーコンテンツ252に含まれる。例えば、訓練3D物体254は機械学習モデル280の1つ以上の構成要素に入力され、機械学習モデル280が訓練3D物体254を物理空間の3D表現内に意味論上有意義なやり方で配置することを学習するのを許しうる。
図2Bに示すように、訓練エンジン122は訓練センサーデータ250を空間区分回路網242に入力し一組の訓練空間区分266を空間区分回路網242の対応する出力として得る前方パスを実行する。前方パスの間、訓練エンジン122はまた、訓練アンカーコンテンツ252をコンテンツ区分回路網244に入力し一組の訓練コンテンツ区分268をコンテンツ区分回路網244の対応する出力として得る。訓練空間区分266は訓練センサーデータ250内のデータ要素に関連するクラスの予測を含み、訓練コンテンツ区分268は訓練アンカーコンテンツ252の様々な部分集合又は部分に関連するクラスの予測を含む。例えば、訓練空間区分266は、物理空間を表す訓練センサーデータ250の画素領域、3D点、及び/又は他のタイプについて物理空間内に見つかりうる床、壁、天井、照明器具、家具、装飾、ドア、窓、及び/又は他の物体を表すクラスの予測される確率を含みうる。訓練コンテンツ区分268は訓練アンカーコンテンツ252の様々な領域又は部分について訓練アンカーコンテンツ252内に見つかる又は表される前景、背景、風合い、物体、形状、構造、人々、人物、顔、動物、植物、及び/又は他の実体を表すクラスの予測される確率を含みうる。
前方パスの間、訓練エンジン122はまた、3D合成回路網246を使って訓練空間区分266及び訓練コンテンツ区分268のペアを3D場面を表す3D訓練出力264に変換し、3D場面は訓練センサーデータ250及び対応する訓練空間区分266が表す物理空間の属性を訓練アンカーコンテンツ252及び対応する訓練コンテンツ区分268の属性と結合する。例えば、訓練エンジン122は、物理空間についての一組の訓練センサーデータ250、空間区分回路網242によってその一組の訓練センサーデータ250から生成された対応する訓練空間区分、一組の訓練アンカーコンテンツ252、及び/又はコンテンツ区分回路網244によってその一組の訓練アンカーコンテンツ252から生成された訓練コンテンツ区分を3D合成回路網246に入力できる。入力に応答して、3D合成回路網246は神経放射輝度フィールド及び/又は3D場面ボリュームの別の表現を含む3D訓練出力264を生成しうる。3D場面ボリュームは入力された訓練センサーデータ250に関連する視覚及び意味属性を入力された訓練アンカーコンテンツ252に関連する視覚及び意味属性と結合できる。
1つ以上の実施形態では、3D合成回路網246は3D訓練出力264を複数の段階で生成する。例えば、3D合成回路網246は、2D訓練アンカーコンテンツ252及び対応する訓練コンテンツ区分268を与えられ、2D訓練アンカーコンテンツ252を同じ物体の3D表現に変換する第1組の神経回路網層を含みうる。3D合成回路網246はまた、3D表現、一組の訓練センサーデータ250、及び/又は一組の訓練センサーデータ250から生成された訓練空間区分266を含む入力を与えられて、一組の訓練センサーデータ250によって表される物理空間の3Dモデル内にその3D表現を配置する第2組の神経回路網層を含みうる。訓練アンカーコンテンツ252が物体の3D表現を含むならば、これらの3D表現は、第1組の神経回路網層による追加の処理を必要とせず第2組の神経回路網層に直接入力されうる。
前方パスが完了すると、訓練エンジン122は訓練データ298と空間区分回路網242、コンテンツ区分回路網244、及び/又は3D合成回路網246によって生成された出力とに基づいて複数の損失を計算する。より具体的には、訓練エンジン122は空間区分回路網242によって訓練センサーデータ250から生成された訓練空間区分266と対応するグラウンド現状データ区分248の間の1つ以上の区分損失262を計算する。訓練エンジン122はまた、又は代りにコンテンツ区分回路網244によって訓練アンカーコンテンツ252から生成された訓練コンテンツ区分268と対応するグラウンド現状データ区分248の間の1つ以上の区分損失262を計算する。これらの区分損失262はこれらに限定されないが、クロスエントロピー損失、さいころ損失、境界損失、Tversky損失、及び/又は空間区分回路網242及び/又はコンテンツ区分回路網244によって生成された特定の区分と対応するグラウンド現状データ区分の間の誤差の別の計測値を含みうる。
訓練エンジン122はまた、又は代りに訓練アンカーコンテンツ252の一断片と外挿回路網206によって訓練アンカーコンテンツ252のその一断片及び一組の訓練センサーデータ250から生成された3D訓練出力264に関連する対応するビューの間の1つ以上の類似性損失256を計算する。幾つかの実施形態では、類似性損失256は訓練アンカーコンテンツ252と訓練アンカーコンテンツ252に基づいて生成された3D訓練出力264の描かれたビューの間の視覚類似性を計測する。例えば、訓練エンジン122はグラウンド現状データ区分248を使って訓練アンカーコンテンツ252がそれに亘って配置又は示される物理空間のある領域(例えば、1つ以上の壁、天井、床など)を特定できる。これらの領域は得られる3D訓練出力264が生成されるやり方を制御するために指定及び/又は選択されうる。訓練エンジン122はこれらの領域に関連するマスクを3D訓練出力264に適用してこれらの領域の外にある3D訓練出力264の部分を取り除きうる。訓練エンジン122は次にL1損失、L2損失、平均2乗誤差、Huber損失、及び/又は他の類似性損失256を訓練アンカーコンテンツ252の様々な構成要素の視覚属性(例えば、形状、色、パターン、画素値など)と3D訓練出力264の描かれたビューの視覚属性の間の類似性又は差異の計測値として計算しうる。訓練エンジン122はまた、又は代りに残りの3D訓練出力264及び/又は描かれたビューを第1組の潜在表現に変換しうり(例えば、3D合成回路網246の1つ以上の構成要素及び/又は予め訓練された特徴抽出器を残りの3D訓練出力264に適用することで)、1つ以上の類似性損失256を前記第1組の潜在表現と訓練アンカーコンテンツ252に関連する第2組の潜在表現(例えば、3D合成回路網246及び/又は予め訓練された特徴抽出器によって訓練アンカーコンテンツ252から生成された潜在表現288)の間の類似性又は差異の計測値として計算しうる。
訓練エンジン122はまた、又は代りに3D訓練出力264と対応する訓練センサーデータ250及び/又は訓練アンカーコンテンツ252に関連するグラウンド現状データ区分248とに基づいて1つ以上のレイアウト損失260を計算する。1つ以上の実施形態では、レイアウト損失260は3D訓練出力264が訓練センサーデータ250によって表される物理空間内に訓練アンカーコンテンツ252の意味論上有意義な配置を描く程度を計測する。
例えば、訓練エンジン122はグラウンド現状データ区分248を使って一組の訓練センサーデータ250によって表される部屋内の様々な物体(例えば、壁、天井、床、家具、装飾、窓、ドアなど)を特定できる。訓練エンジン122は3D訓練出力264に描かれるべきその部屋の物体の領域(例えば、訓練アンカーコンテンツ252の配置によって覆い隠されるべきでないドア、ドア枠、窓、窓枠、家具、装飾、物体の境界、及び/又は他の領域)を特定するマスクを生成できる。これらの領域は指定され及び/又は選択され得られる3D訓練出力264が生成されるやり方を制御できる。訓練エンジン122はマスクを3D訓練出力264に適用しこれらの領域外にある3D訓練出力264の部分を削除できる。訓練エンジン122は次にL1損失、L2損失、平均2乗誤差、Huber損失、及び/又は1つ以上の他のレイアウト損失を残りの3D訓練出力264(又は残りの3D訓練出力264の描かれたビュー)の視覚属性(例えば、形状、色、パターン、画素値など)と訓練センサーデータ250内の対応する物体の視覚属性の間の類似性又は差異の計測値として計算しうる。訓練エンジン122はまた、又は代りに残りの3D訓練出力264(又は残りの3D訓練出力264の描かれたビュー)を第1組の潜在表現に変換しうり(例えば、3D合成回路網246の1つ以上の構成要素及び/又は予め訓練された特徴抽出器を残りの3D訓練出力264に適用することで)、1つ以上のレイアウト損失260を前記第1組の潜在表現と訓練センサーデータ210内の対応する物体に関連する第2組の潜在表現(例えば、3D合成回路網246及び/又は予め訓練された特徴抽出器によってこれらの物体を描く又は表す訓練センサーデータ250の部分から生成された潜在表現288)の間の類似性又は差異の計測値として計算しうる。その結果、レイアウト損失260は3D訓練出力264が対応する位置にこれらの物体の正確で及び/又は完全な描写を含み、部屋を表す3Dボリューム内への訓練アンカーコンテンツ252の重ね又は配置がこれらの物体を遮ったり歪めたりしないことを保証するのに使用されうる。
幾つかの実施形態では、1つ以上のレイアウト損失260が、訓練アンカーコンテンツ252が特定の一組の訓練センサーデータ250によって表される物理空間内のある位置に配置されることを保証するのに使用されうる。これらの位置は、これらに限定されないが装飾のない表面、例えば壁又は床、閾サイズを超える空のボリューム(例えば、ある体積又は一組の寸法を超える部屋の空いた部分)、物体が置かれうる表面(例えば、テーブル、机、暖炉など)、及び/又は訓練アンカーコンテンツ252で装飾されうるあるタイプの物体(例えば照明器具、窓、又は訓練アンカーコンテンツ252がそこを通って流れうる玄関口、訓練アンカーコンテンツ252の対応する要素と結合されパターン又は動画を形成しうる風合い又は表面など)を含みうる。様々なタイプの訓練アンカーコンテンツ252をこれらの位置に配置するように機械学習モデル280を訓練するために、訓練エンジン122はこれらの領域又は位置を特定するマスクを生成しそのマスクを3D訓練出力264に適用しこれらの領域又は位置外にある3D訓練出力264の部分を削除できる。訓練エンジン122はまた、L1損失、L2損失、平均2乗誤差、Huber損失、及び/又は1つ以上の他のレイアウト損失260を残りの3D訓練出力264(又は残りの3D出力の描かれたビュー)の視覚属性と訓練アンカーコンテンツ252の視覚属性の間の類似性又は差異の計測値として計算できる。
言い換えると、レイアウト損失260は機械学習モデル280に一組の訓練センサーデータ250によって表される物理空間のある部分に配置されたあるタイプの訓練アンカーコンテンツ252及び/又はその一組の訓練センサーデータ250から生成された仮想ツインを含む3D訓練出力264を生成させるように規定されうる。例えば、レイアウト損失260は機械学習モデル280にテーブル、コーヒーテーブル、机、暖炉、敷物、床、及び/又は他の水平な表面を持つ物体(訓練空間区分266及び/又はグラウンド現状データ区分248によって特定される)上に置かれた訓練アンカーコンテンツ252内の器具、皿、ガラス食器、時計、人物、動物、及び/又は他の個別物体(訓練コンテンツ区分268及び/又はグラウンド現状データ区分248によって特定される)を含む3D訓練出力264を生成させるように規定されうる。別の例では、レイアウト損失260は機械学習モデル280に部屋の天井又は上部(訓練空間区分266及び/又はグラウンド現状データ区分248によって特定される)に沿って又は近くに訓練アンカーコンテンツ252内の雲、雨、星、光線、蔓、又は他の天上又は吊り下がった物体(訓練コンテンツ区分268及び/又はグラウンド現状データ区分248によって特定される)を含む3D訓練出力264を生成させるように規定されうる。第3の例では、レイアウト損失260は機械学習モデル280に空又は装飾のない空間(訓練空間区分266及び/又はグラウンド現状データ区分248によって特定される)を通って流れる訓練アンカーコンテンツ252内の川又は滝(訓練コンテンツ区分268及び/又はグラウンド現状データ区分248によって特定される)を含む訓練出力264を生成させるように規定されうる。
1つ以上の実施形態では、レイアウト損失260は3D訓練出力264に関連する時間ステップに亘る意味上及び/又は空間一貫性を保証するのに使用される。例えば、3D訓練出力264は訓練センサーデータ210によって表される物理空間内での訓練アンカーコンテンツ252内の対応する映像フレーム又は時間ステップからの物体の配置を描く一連の3Dボリュームを含みうる。訓練エンジン122は、3D訓練出力264内の1つ以上の前のフレーム、対応する訓練空間区分266、対応する訓練コンテンツ区分268、及び/又は訓練アンカーコンテンツ252内の対応するフレーム又は時間ステップを追加の入力として空間区分回路網242、コンテンツ区分回路網244、及び/又は3D合成回路網246に提供でき、訓練アンカーコンテンツ252の現在フレームからの3D訓練出力264の現在フレームの生成を通知する。訓練エンジン122はまた、3D訓練出力264内の連続する3Dボリューム間又はに亘る1つ以上のレイアウト損失260を計算でき、訓練アンカーコンテンツ252内の連続するフレーム又は時間ステップ内の物体又は動画が物理空間内の概ね同じ位置に配置される(跳ね回ったり不規則に変動したりすることなく)ことを保証する。
訓練エンジン122はまた、又は代りに3D合成回路網246によって出力された訓練アンカーコンテンツ252の3D表現と対応する訓練3D物体254の間の1つ以上の再構成損失258を計算する。例えば、訓練エンジン122は訓練3D物体254内の3Dモデルと3D合成回路網246によって2D訓練アンカーコンテンツ252の対応する部分から生成された3D表現の間の1つ以上の再構成損失258を計算できる。従って、再構成損失258は機械学習モデル280が訓練アンカーコンテンツ252内の2D物体の描写を対応する訓練3D物体254に変換することを学習するのを可能にする。
類似性損失256、再構成損失258、レイアウト損失260、及び/又は区分損失262を特定の前方パスについて計算した後、訓練エンジン122は、類似性損失256、再構成損失258、レイアウト損失260、及び/又は区分損失262の様々な並べ替え又は結合を使って空間区分回路網242、コンテンツ区分回路網244、及び/又は3D合成回路網246のパラメータを更新する後方パスを実行する。例えば、訓練エンジン122は訓練手法(例えば、勾配降下及び逆伝播)を使用して空間区分回路網242のパラメータを訓練空間区分266と対応するグラウンド現状データ区分248の間で計算された区分損失262に基づいて更新できる。訓練エンジン122はまた、コンテンツ区分回路網244のパラメータを訓練コンテンツ区分268と対応するグラウンド現状データ区分248の間で計算された区分損失262に基づいて更新できる。空間区分回路網242及びコンテンツ区分回路網244の訓練が完了した後、訓練エンジン122は空間区分回路網242、コンテンツ区分回路網244、及び3D合成回路網246のパラメータをレイアウト損失260、類似性損失256、及び/又は再構成損失258に基づいて凍結できる。訓練エンジン122はまた、区分損失262、レイアウト損失260、類似性損失256、及び/又は再構成損失258が対応する閾値未満になるまで、空間区分回路網242とコンテンツ区分回路網244を区分損失262に基づいて訓練するのと3D合成回路網246をレイアウト損失260、類似性損失256、及び/又は再構成損失258に基づいて訓練するのとを交互に続けうる。
別の例では、訓練エンジン122は3D訓練出力264に基づいて計算されたレイアウト損失260、類似性損失256、再構成損失258、及び/又は他の損失を使って空間区分回路網242、コンテンツ区分回路網244、及び3D合成回路網246の終端間訓練を実行できる。この終端間訓練は空間区分回路網242及びコンテンツ区分回路網244が対応する区分損失262に基づいて訓練された後に、空間区分回路網242及びコンテンツ区分回路網244の区分損失262に基づく訓練と交互に、及び/又は別のやり方で実行されうる。
訓練エンジン122の動作をあるタイプの損失に関して上記で説明したが、空間区分回路網242、コンテンツ区分回路網244、及び/又は3D合成回路網246は他のタイプの手法、損失、及び/又は機械学習構成要素を使って訓練されうることは理解されるであろう。例えば、訓練エンジン122は空間区分回路網242、コンテンツ区分回路網244、及び/又は3D合成回路網246を敵対的なやり方で1つ以上の弁別器神経回路網(不図示)を用い弁別器神経回路網によって生成された予測に基づいてグラウンド現状データ区分248、訓練空間区分266、訓練コンテンツ区分268、及び/又は3D訓練出力264から計算された1つ以上の弁別器損失を使用して訓練できる。別の例では、訓練エンジン122は空間区分回路網242、コンテンツ区分回路網244、及び/又は3D合成回路網246を3D訓練出力264に芸術家指針又はパラメータを反映させる1つ以上の損失を使用して訓練できる。この芸術家指針又はパラメータは対称、平衡、色、向き、規模、スタイル、訓練センサーデータ250によって表される物理空間に亘る訓練アンカーコンテンツ252の動き、訓練センサーデータ250によって表される物理空間内に描かれた又は置かれた訓練アンカーコンテンツ252内の物体のサイズ、及び/又は訓練アンカーコンテンツ252が訓練センサーデータ250によって表される物理空間に描かれる又は置かれるやり方に影響する他の属性に関連する。第3の例では、訓練エンジン122は2D又は3D訓練アンカーコンテンツ252の特定の断片を様々な物理空間に亘って拡張することを学習するように空間区分回路網242、コンテンツ区分回路網244、及び/又は3D合成回路網246を訓練できる。
機械学習モデル280の訓練が完了すると、実行エンジン124は訓練された機械学習モデル280の1つ以上の構成要素を使って出力3Dボリューム284を生成する。特に、実行エンジン124は空間区分回路網242を使って物理空間から収集したセンサーデータ274(例えば、画像、点群、格子、深度マップなど)をその物理空間内の物体278の位置、形状、及び向きを特定する意味上レイアウト276に変換する。実行エンジン124はまた、コンテンツ区分回路網244を使って、センサーデータ274に捕捉された又はセンサーデータ274と別に提供されたアンカーコンテンツ296の特定の断片(例えば、画像、絵画、映像など)を対応するコンテンツ区分282に変換する。実行エンジン124は次に3D合成回路網246を使ってレイアウト276内の物体278及び/又はコンテンツ区分282を使用して特定されたアンカーコンテンツ296の部分の潜在表現288を生成する。実行エンジン124はまた、3D合成回路網246を使って出力3Dボリューム284を潜在表現288に基づいて生成する(例えば、潜在表現288をサンプリングする、変換する、相関させる、又は他の処理をすることで)。上述したように、出力3Dボリューム284は物理空間からの一組の3D物体286(例えば、ドア、窓、家具、装飾など)をそれぞれの位置に含み、物理空間内に配置されたアンカーコンテンツ296の様々な部分の3D表現に対応する第2組の3D物体286を含む。
実行エンジン124はまた、出力3Dボリューム284の様々なビューをAR環境292に取り込む。例えば、実行エンジン124はAR環境292を提供するARシステムに関連する視点をARシステムによって捕捉された物理空間の画像、ARシステムからの慣性センサーデータ、ARシステムに対応する計算装置の位置及び向き、及び/又はARシステムに関連する又は捕捉された他のセンサーデータ228に基づいて推定及び/又は決定しうる。実行エンジン124は機械学習モデル280を使って出力3Dボリューム284のビューをAR環境292を提供するARシステムの視点から描きうる。その結果、AR環境290は、ARシステムと対話するユーザーの視点からアンカーコンテンツ296の3D表現の意味論上有意義な配置を物理空間に亘って描きうる。ユーザーがARシステムの視点を変える及び/又はアンカーコンテンツ296を更新する時(例えば、アンカーコンテンツ296の追加部分を描く、アンカーコンテンツ296をトリミング、縮小/拡大、及び/又は変形する、アンカーコンテンツ296の色バランス、飽和、色温度、露光、輝度、及び/又は他の色関連の属性を変更する、アンカーコンテンツ296のビューを変更する、異なるファイルからアンカーコンテンツ296をロードする、アンカーコンテンツ296の複数のフレームを含む映像又は動画を再生するなどにより)、実行エンジン124は更新されたアンカーコンテンツ296及び/又は物理空間の最新ビュー又は表現を反映する更新されたセンサーデータ274を受信し、追加のセンサーデータ274から新しいレイアウト276を及び/又は新しいアンカーコンテンツ296から新しいコンテンツ区分282を生成し、新しいアンカーコンテンツ296に関連する3D物体286を描く新しい出力3Dボリューム284を生成し、最新ビューからその新しい出力3Dボリュームを描きうる。その結果、実行エンジン124はセンサーデータ274及び/又はアンカーコンテンツ296の変化に連続して応答する没入型AR環境292を生成する。
幾つかの実施形態では、出力3Dボリューム284は他のタイプの没入型環境、例えば仮想現実(VR)及び/又は複合現実(MR)環境などにおいて使用される。このコンテンツは個人の身元、ユーザー履歴、資格、財産、及び/又は報酬などのデータの連続性を提供しながら、任意の数のユーザーが同期して持続的に体験できる仮想世界を描きうる。なお、このコンテンツは従来の視聴覚コンテンツ及び完全に没入型VR、AR、及び/又はMR体験の混成、例えば双方向ビデオを含みうる。
図3Aは様々な実施形態に係る物理空間のレイアウト例を示す。図3Aに示すように、レイアウト例は一断片のアンカーコンテンツを描く物体302を含む。例えば、物体302は壁に掛けられた絵画及び/又はモニター又はテレビ画面に表示された画像又は映像を含みうる。
図3Aのレイアウトはまた、その物理空間内に配置された複数の追加の物体304、306、308、310、312、及び314を含む。例えば、物体304は一組の額縁からなり、物体306は本棚からなり、物体308はスピーカーシステム又はサウンドバーからなり、物体310はドアからなり、物体312は暖炉からなり、物体314は壁からなりうる。
図3Bは様々な実施形態に係る図3Aの物理空間内に2Dアンカーコンテンツを拡張するAR環境の例を示す。より具体的には、図3Bは物体302に描かれたアンカーコンテンツを物体314に対応する壁に亘って拡張するAR環境を示す。図3Bに示すように、拡張されたアンカーコンテンツは物理空間内の現実世界物体302、304、306、308、310、312を覆い隠さない。代りに、アンカーコンテンツは壁の装飾のない部分に示されており、物体302、304、306、308、310、312、及び314は物理空間内のそれぞれの位置に示されている。その結果、アンカーコンテンツは物理空間のレイアウトと意味論上有意義なやり方で混合される。
図3Cは様々な実施形態に係る図3Aの物理空間に関連する3Dボリュームのビューを含むAR環境の例を示す。特に、図3Cは3Dボリュームのビューを含むAR環境を示す。3Dボリュームは物体302に描かれたアンカーコンテンツの3D表現を物理空間内の様々な位置に含む。
より具体的には、3Dボリュームはアンカーコンテンツの様々な部分から生成された複数の3D物体322、324、及び326を含む。各3D物体322、324、及び326は3Dボリューム内の物理空間の空き部分に配置される。3Dボリュームはまた、図3Aのレイアウトからの物体302、304、306、308、310、312、及び314を含む。
3Dボリュームはまた、アンカーコンテンツから生成された3D物体322、324、及び326と様々なビューからの物体302、304、306、308、310、312、及び314を描画するのに使用されうる。例えば、ユーザーはAR環境を提供する計算装置を持って物理空間を歩き回り、様々な角度から3D物体322、324、及び326及び/又は物体302、304、306、308、310、312、及び314を眺め、様々な詳細レベルで3D物体322、324、及び326及び/又は物体302、304、306、308、310、312、及び314を眺め、特定の3D物体322、324、又は326及び/又は特定の現実世界物体302、304、306、308、310、312、又は314の位置、サイズ、色、及び/又は別の属性を変え、及び/又は他のやり方でAR環境と対話できる。
図4Aは様々な実施形態に係る物理空間のレイアウト例を示す。図3Aのレイアウトと同様に、図4Aのレイアウト例は一断片のアンカーコンテンツを描く物体402を含む。例えば、物体402は壁に掛けられた絵画及び/又はモニター又はテレビ画面に表示された画像を含みうる。
図4Aのレイアウトはまた、その物理空間内に配置された複数の追加の物体404、406、408、410、412、及び414を含む。例えば、物体404は一組の額縁からなり、物体406は本棚からなり、物体408はスピーカーシステム又はサウンドバーからなり、物体410はドアからなり、物体412は暖炉からなり、物体414は壁からなりうる。
図4Bは様々な実施形態に係る図4Aの物理空間内に2Dアンカーコンテンツを拡張するAR環境の例を示す。より具体的には、図4Bは物体402に描かれたアンカーコンテンツを物体414に対応する壁に亘って拡張するAR環境を示す。図4Bに示すように、拡張されたアンカーコンテンツは物理空間内の現実世界物体402、404、406、408、410、412、及び414を覆い隠さない。代りに、アンカーコンテンツは壁の装飾のない部分に示されており、物体402、404、406、408、410、412、及び414は物理空間内のそれぞれの位置に示されている。その結果、アンカーコンテンツは物理空間のレイアウトと意味論上有意義なやり方で混合される。
図4Cは様々な実施形態に係る図4Aの物理空間に関連する3Dボリュームのビューを含むAR環境の例を示す。特に、図4Cは3Dボリュームのビューを含むAR環境を示す。3Dボリュームは物体402に描かれたアンカーコンテンツの3D表現を物理空間内の様々な位置に含む。
より具体的には、3Dボリュームはアンカーコンテンツの様々な部分から生成された複数の3D物体422、424、426、及び428を含む。各3D物体422、424、426、及び428は3Dボリューム内の物理空間の空き部分に配置される。3Dボリュームはまた、物体414に対応する壁に亘るアンカーコンテンツの2D拡張を含む。
3Dボリュームはまた、アンカーコンテンツから生成された3D物体422、424、426、及び428と様々なビューからの物体402、404、406、408、410、412、及び414を描画するのに使用されうる。例えば、ユーザーはAR環境を提供するAR装置を持って物理空間を歩き回り、様々な角度から3D物体422、424、426、及び428及び/又は物体402、404、406、408、410、412、及び414を眺め、様々な詳細レベルで3D物体422、424、426、及び428及び/又は物体402、404、406、408、410、412、及び414を眺め、特定の3D物体422、424、426、又は428及び/又は特定の現実世界物体402、404、406、408、410、412、又は414の位置、サイズ、色、及び/又は別の属性を変え、及び/又は他のやり方でAR環境と対話できる。
図3B、3C、4B、及び4CのAR環境例は対応する物理空間内のアンカーコンテンツのある拡張又は配置を描くが、アンカーコンテンツを物理空間に亘って他のやり方で拡張できることは理解されるであろう。例えば、物体302又は402に描かれた絵画、画像、又は映像は物体314又は414に対応する壁全体に亘って拡張され、AR環境を提供するARシステムに関連する視点から見える1つ以上の物体302、304、306、308、310、312、402、404、406、408、410、及び/又は412上に重ねられ、及び/又はAR環境を提供するARシステムに関連する視点から見える1つ以上の物体302、304、306、308、310、312、402、404、406、408、410、及び/又は412を覆い隠すのに使用されうる。
一般的に、アンカーコンテンツが特定の空間内に拡張、投影、又は配置されるやり方は、対応する機械学習モデル(例えば、機械学習モデル200及び/又は280)がARコンテンツを生成するように訓練されるのに使用される損失に基づいて制御されうる。例えば、機械学習モデルはアンカーコンテンツの様々な断片を物理空間内に拡張、投影、又は配置するように訓練されうり、その結果、物理空間内のある物体はアンカーコンテンツによって影響されず、ある物体はアンカーコンテンツと対話する(例えば、支持する、収容する、融合されるなど)として描かれ、ある物体はアンカーコンテンツを重ねられる、及び/又はある物体はアンカーコンテンツによって覆い隠される。
図5は様々な実施形態に係る機械学習モデルを訓練しアンカーコンテンツを物理空間内に組み込むARコンテンツを生成するための方法ステップのフロー図である。方法ステップが図1~2Bのシステムと共に説明されるが、方法ステップを任意の順序で実行するように構成されたどんなシステムも本開示の範囲内に入ることを当業者は理解するであろう。
図示のように、ステップ502で、訓練エンジン122は1つ以上の物理空間及び/又は1つ以上の組のアンカーコンテンツに関連する意味上区分を生成する第1組の神経回路網を動作させる。例えば、訓練エンジン122は画像、点群、格子、深度マップ、及び/又は物理空間の他のセンサーデータ又は表現を第1区分神経回路網に入力できる。訓練エンジン122は第1区分神経回路網を動作させて第1区分神経回路網の出力としてセンサーデータの様々な領域について物体(例えば、壁、天井、床、玄関口、ドア、窓、暖炉、照明器具、様々なタイプの家具、様々なタイプの装飾など)の予測を得ることができる。訓練エンジン122はまた、又は代りに特定の組のアンカーコンテンツの1つ以上の画像、映像フレーム、3D物体、及び/又は他の表現を第2区分神経回路網に入力できる。訓練エンジン122は第2区分神経回路網を動作させて第2区分神経回路網の出力としてアンカーコンテンツの様々な領域又は部分集合について物体(例えば、人々、動物、植物、顔、人物、背景、前景、構造など)の予測を得ることができる。
ステップ504で、訓練エンジン122は意味上区分に関連する1つ以上の区分損失に基づいて第1組の神経回路網のパラメータを更新する。上記の例を続けると、訓練エンジン122はセンサーデータに関連する第1組のグラウンド現状データ区分及び/又はアンカーコンテンツに関連する第2組のグラウンド現状データ区分を得ることができる。各グラウンド現状データ区分は対応するセンサーデータ及び/又はアンカーコンテンツの様々な領域、部分、又は部分集合に対応する物体を特定するラベルを含みうる。訓練エンジン122はクロスエントロピー損失、さいころ損失、境界損失、Tversky損失、及び/又は区分神経回路網によって出力される特定の区分と対応するグラウンド現状データ区分の間の誤差の別の計測値を計算できる。訓練エンジン122は次に勾配降下及び逆伝播を使用してその区分神経回路網内の神経回路網重みを誤差の計測値を低減するように更新できる。
ステップ506で、訓練エンジン122は第1組の神経回路網の訓練を続けるべきか否かを判断する。例えば、訓練エンジン122は各区分神経回路網は1つ以上の条件が満たされるまで対応する区分損失を使って訓練され続けるべきと判断しうる。これらの条件はこれらに限定されないが区分神経回路網のパラメータの収束、閾値未満への区分損失の低下、及び/又はある数の訓練ステップ、繰り返し、バッチ、及び/又は出来事を含む。第1組の神経回路網の訓練が続く間、訓練エンジン122はステップ502及び504を繰り返す。
訓練エンジン122が第1組の神経回路網の訓練が完了したと判断すると(ステップ506)、訓練エンジン122はARコンテンツを生成するように第2組の神経回路網を訓練するのを始める。より具体的には、ステップ508で訓練エンジン122は意味上区分及び/又は物理空間及び/又はアンカーコンテンツに関連する追加のデータに基づいて2D出力及び/又は3D出力を生成する第2組の神経回路網を動作させる。例えば、訓練エンジン122は1つ以上の訓練された区分神経回路網を使用して物理空間及び/又は1つ以上の組のアンカーコンテンツに対してセンサーデータの意味上区分を生成しうる。訓練エンジン122は意味上区分を対応するセンサーデータ及びアンカーコンテンツと共に外挿回路網に入力し外挿回路網を動作させて1つ以上の画像を含む2D出力を生成できる。各画像はセンサーデータが表す物理空間の属性を一組のアンカーコンテンツの属性と結合できる。訓練エンジン122はまた、又は代りに意味上区分を対応するセンサーデータ及びアンカーコンテンツと共に3D合成回路網に入力し3D合成回路網を動作させて3Dボリュームを生成できる。3Dボリュームは神経放射輝度フィールド及び/又は入力されたセンサーデータに関連する視覚及び意味属性を入力されたアンカーコンテンツに関連する視覚及び意味属性と結合する3D場面の別の表現を含みうる。
ステップ510で、訓練エンジン122は2D及び/又は3D出力に関連する1つ以上の損失に基づいて第2組の神経回路網のパラメータを更新する。上記の例を続けると、訓練エンジン122は、外挿回路網によって生成された2D出力に描かれた物理空間の一部に亘るアンカーコンテンツの拡張の視覚属性とアンカーコンテンツの対応する部分の間の差異の計測値として、類似性損失を計算することで外挿回路網を訓練できる。訓練エンジン122はまた、又は代りに2D出力内の物理空間の一部の描写と物理空間のセンサーデータの対応する部分の間の差異の計測値としてレイアウト損失を計算しうる。訓練エンジン122は次に勾配降下及び逆伝播を使用してその外挿回路網内の神経回路網重みを類似性損失及び/又はレイアウト損失を低減するように更新できる。
訓練エンジン122は3D合成回路網によって生成されたアンカーコンテンツの1つ以上の3D表現とアンカーコンテンツに関連する1つ以上のグラウンド現状データ3D物体とに基づいて再構成損失を計算することで3D合成回路網を訓練できる。訓練エンジン122はまた、又は代りに第1の3Dボリューム内の物理空間の部分集合の表現と物理空間のセンサーデータの対応する部分集合の間の差異の計測値としてレイアウト損失を計算できる。訓練エンジン122はまた、又は代りに第1の3Dボリューム内のアンカーコンテンツの1つ以上の3D表現の配置に基づいて別のレイアウト損失を計算できる。訓練エンジン122はまた、又は代りに3Dボリューム内のアンカーコンテンツの1つ以上の描画されたビューの視覚属性とアンカーコンテンツの対応する部分の間の差異の計測値として類似性損失を計算しうる。訓練エンジン122は次に勾配降下及び逆伝播を使用してその3D合成回路網内の神経回路網重みを再構成損失、類似性損失、及び/又はレイアウト損失を低減するように更新できる。
ステップ512で、訓練エンジン122は第2組の神経回路網の訓練を続けるべきか否かを判断する。例えば、訓練エンジン122は外挿回路網及び/又は3D合成回路網は対応する損失を使って1つ以上の条件が満たされるまで訓練され続けるべきと判断しうる。これらの条件はこれらに限定されないが神経回路網のパラメータの収束、閾値未満への損失の低下、及び/又はある数の訓練ステップ、繰り返し、バッチ、及び/又は出来事を含む。第2組の神経回路網の訓練が続く間、訓練エンジン122はステップ508及び510を繰り返す。次に訓練エンジン122は、条件が満たされると第2組の神経回路網を訓練するプロセスを終了する。
訓練エンジン122はまた、ステップ502、504、506、508、510、及び512を1回以上繰り返し第1及び/又は第2組の神経回路網を訓練し続けうる。例えば、訓練エンジン122は、全ての損失がそれぞれの閾値を満たす、各タイプの訓練をある回数実行する、及び/又は別の条件が満たされるまで第1及び第2組の神経回路網を訓練するのを交互させうる。訓練エンジン122はまた、又は代りに第1及び第2組の神経回路網の終端間訓練の1つ以上のラウンドを実行して全ての神経回路網の動作をアンカーコンテンツ及び物理空間の描写からARコンテンツを生成するタスクに合わせて最適化できる。
図6は様々な実施形態に係る一組のアンカーコンテンツを物理空間のレイアウトに組み込むAR環境を生成するための方法ステップのフロー図である。方法ステップが図1~2Bのシステムと共に説明されるが、方法ステップを任意の順序で実行するように構成されたどんなシステムも本開示の範囲内に入ることを当業者は理解するであろう。
図示のように、ステップ602で、実行エンジン124は物理空間のレイアウトを物理空間に関連するセンサーデータに基づいて決定する。例えば、実行エンジン124はセンサーデータを物理空間の一組の画像、点群、格子、深度マップ、及び/又は視覚又は空間属性の別の表現として受信しうる。実行エンジン124はまた、第1区分神経回路網を使ってレイアウトをセンサーデータの意味上区分として生成しうる。意味上区分はセンサーデータの様々な領域又は部分集合についての現実世界物体(床、天井、壁、装飾、机、椅子、ソファー、敷物、絵画など)の予測を含みうる。
ステップ604で、実行エンジン124は一組のアンカーコンテンツに関連する意味上区分を決定する。一組のアンカーコンテンツはアンカーコンテンツの1つ以上の断片を含みうり、アンカーコンテンツの特定の断片は、これらに限定されないが画像、映像フレーム、2D又は3D形状、風合い、音声クリップ、及び/又はAR環境に取り込まれる別のタイプのコンテンツを含みうる。実行エンジン124は1つ以上の画像、映像フレーム、3Dモデル、及び/又は他のタイプのアンカーコンテンツを第2区分神経回路網に入力できる。アンカーコンテンツは物理空間のセンサーデータの部分集合としてユーザーによって選択され及び/又はセンサーデータとは別に提供されうる。実行エンジン124はまた、意味上区分を第2区分神経回路網の出力として得ることができる。意味上区分はアンカーコンテンツの様々な領域又は部分集合についてのコンテンツに基づく物体(例えば、顔、人物、世界、状況、動物、植物、建物、車、構造、形状など)の予測を含む。
ステップ606で、実行エンジン124はセンサーデータ、アンカーコンテンツ、レイアウト、及び/又は意味上区分を機械学習モデルに入力する。例えば、実行エンジン124はセンサーデータ、アンカーコンテンツ、レイアウト、及び/又は意味上区分を2D出力を生成する外挿回路網に入力できる。実行エンジン124はまた、又は代りにセンサーデータ、アンカーコンテンツ、レイアウト、及び/又は意味上区分を3D出力を生成する3D合成回路網に入力できる。
ステップ608で、実行エンジン124は機械学習モデルの動作により物理空間の第1部分の描写及び物理空間の第2部分集合内のアンカーコンテンツの表現を含む1つ以上の画像及び/又は3Dボリュームを生成する。例えば、実行エンジン124は外挿回路網を使用して標準箱形部屋を表す立方体の六面に対応する6つの画像を生成しうる。実行エンジン124はまた、又は代りに外挿回路網を使用して箱形部屋に限定されない物理空間の360度、球形、及び/又は別のタイプのパノラマビューを描く1つ以上の画像を生成しうる。各画像は部屋内の現実世界物体、例えばドア、窓、家具、及び/又は装飾を描きうる。各画像はまた、部屋内の壁、床、天井、及び/又は他の表面上に重ねられたアンカーコンテンツの様々な構成要素を描きうる。アンカーコンテンツのこれらの構成要素はまた、部屋内のドア、窓、家具、装飾、及び/又は他の物体を遮る及び/又は一部重なるのを避けるように対応する画像内に配置又は分散されうる。
別の例では、実行エンジン124は3D合成回路網を使用して神経放射輝度フィールド及び/又は3D場面の別の表現を含む3D出力を生成しうる。3D出力は物理空間からの現実世界物体、例えばドア、窓、家具、及び/又は装飾などの3D表現を含みうる。3D出力はまた、アンカーコンテンツの様々な構成要素に対応し部屋の空き部分に位置する及び/又はあるタイプの表面上に配置された2D又は3D物体を含みうる。アンカーコンテンツのこれらの構成要素はまた、3Dボリューム内に位置し部屋内のドア、窓、家具、装飾、及び/又は他の物体を遮る及び/又は一部重なるのを避けうる。アンカーコンテンツのこれらの構成要素はまた、又は代りに構成要素が部屋内の物体と相互作用又は融合するのを許すように配置されうる。
ステップ610で、実行エンジン124は画像及び/又は3Dボリュームの1つ以上のビューを計算装置が提供するAR環境内に出力させる。例えば、実行エンジン124は画像を計算装置の表示器によって生成される視覚出力に組み込み、その結果、ARシステムと対話するユーザーの視点からAR環境がアンカーコンテンツの意味論上有意義な拡張を物理空間に亘って描くように見えうる。別の例では、実行エンジン124は3D合成回路網を使用して3Dボリュームのビューを計算装置の視点から描画し計算装置にそのビューをユーザーに出力させうる。
ステップ612で、実行エンジン124はAR環境を提供し続けるか否かを判断する。例えば、実行エンジン124はAR環境を実現しているアプリケーションが計算装置で動作している間、及び/又はユーザーがAR環境と対話する間、AR環境が提供されるべきと判断しうる。AR環境が提供されるべきならば、実行エンジン124はステップ602、604、606、608、及び610を繰り返し、計算装置の視点、物理空間、及び/又はアンカーコンテンツの変化に応答してAR環境を更新する。例えば、実行エンジン124は、ユーザーからの「描く」入力としてアンカーコンテンツの更新;アンカーコンテンツのトリミング、縮小/拡大、及び/又は他の変形;アンカーコンテンツの色バランス、飽和、色温度、露光、輝度、及び/又は他の色関連の属性の変更;アンカーコンテンツに適用されるはっきりさせる、ぼやかす、ノイズ除去、歪める、又は他の変更;アンカーコンテンツのビューの変化;1つ以上のファイルからアンカーコンテンツの選択;及び/又はアンカー画像の複数のフレームを含む映像の再生を受信できる。実行エンジン124はまた、又は代りに計算装置の動き及び/又は物理空間の変化を反映する追加のセンサーデータを受信できる。実行エンジン124はステップ602を実行して追加のセンサーデータから新しいレイアウトを生成し、ステップ604を実行してアンカーコンテンツから意味上区分を生成しうる。実行エンジン124はまた、ステップ606及び608を実行して現在の視点からの物理空間を最新のアンカーコンテンツと結合する新しい2D又は3D出力を生成しうる。その結果、実行エンジン124はユーザーが物理空間のアンカーコンテンツとの意味論上有意義な結合を探索するのを可能にする没入型AR環境を生成する。
要約すると、開示された手法は物理空間内の写真、絵画、映像フレーム、描画された場面、動画場面、又は他のタイプのアンカーコンテンツの2D又は3D表現を拡張又は配置するARコンテンツを生成する。物理空間は1つ以上の画像、点群、格子、深度マップ、及び/又は他のタイプのセンサーデータによって表現される。機械学習モデルはセンサーデータの第1意味上区分及びアンカーコンテンツの第2意味上区分を生成するのに使用される。第1意味上区分はセンサーデータの様々な領域又は部分集合についての部屋(又は他のタイプの物理空間)に通常見つかる物体の予測を含む。第2意味上区分はアンカーコンテンツの様々な領域又は部分集合についてのアンカーコンテンツに通常関連する物体の予測を含む。
機械学習モデルの別の部分は意味上区分、センサーデータ、及びアンカーコンテンツをARコンテンツに変換するのに使用される。ARコンテンツは物理空間をある視点から描く1つ以上の画像を含みうる。それらの画像は物理空間内のあるタイプの現実世界物体(例えば、ドア、窓、家具など)の表現と物理空間内の他のタイプの現実世界物体(例えば、壁、天井、床など)に亘るARコンテンツの拡張とを含む。ARコンテンツはまた、又は代りに機械学習モデルによって生成された3Dボリュームの1つ以上のビューを含みうる。それらのビューは物理空間の描写と物理空間内の様々な位置にARコンテンツの3D表現の配置とを含みうる。
ARコンテンツは携帯電子装置、装着型装置、及び/又は別のタイプの計算装置によって提供されるAR、VR、及び/又は複合現実環境に出力される。計算装置の位置及び向き、物理空間、及び/又はアンカーコンテンツが変化する時、機械学習モデルがセンサーデータ及び/又はアンカーコンテンツの変化を反映する更新されたARコンテンツを生成するために使用される。更新されたARコンテンツはまた、AR環境に出力され計算装置のユーザーがAR環境を探索、変更、又は対話するのを許す。
従来技術に対する開示された手法の1つの技術的利点はアンカーコンテンツを物理空間のレイアウトと結合するARコンテンツを自動的に継ぎ目なく生成する能力である。従って、開示された手法は、様々なソフトウェア部品を使って従来メディアコンテンツをAR資産に変換し手動でAR資産をAR環境内に配置する従来手法より時間及び資源効率がよい。開示された手法の別の技術的利点は、特定の一組のアンカーコンテンツ及び特定の物理空間からARコンテンツを臨機応変に生成する能力である。その結果、開示された手法は従来のメディアコンテンツを物理空間のレイアウトと結合するARコンテンツの多様性及び利用可能性を増加させる。これらの技術的利点は従来技術手法に比べ1つ以上の技術改善を提供する。
1.幾つかの実施形態では、拡張現実コンテンツを生成するためのコンピュータ実行方法は、物理空間の第1レイアウトと第1組のアンカーコンテンツを機械学習モデルに入力するステップと、前記機械学習モデルの動作により(1)前記物理空間の第1部分集合と(2)前記物理空間の第2部分集合内に前記第1組のアンカーコンテンツの1つ以上の3D表現の配置とを含む第1の3次元(3D)ボリュームを生成するステップと、前記第1の3Dボリュームの1つ以上のビューを計算装置に出力させるステップとを含む。
2.前記第1の3Dボリュームを生成するステップは、前記機械学習モデルに含まれる第1組の神経回路網層を前記第1組のアンカーコンテンツに適用して前記第1組のアンカーコンテンツの意味上区分を生成することと、前記機械学習モデルに含まれる第2組の神経回路網層を前記第1レイアウト、前記第1組のアンカーコンテンツ、及び前記意味上区分に適用して前記第1の3Dボリュームを生成することとを含む、項1記載のコンピュータ実行方法。
3.前記第1の3Dボリュームを生成するステップは、前記機械学習モデルに含まれる第1組の神経回路網層を前記第1組のアンカーコンテンツに適用して前記1つ以上の3D表現を生成することと、前記機械学習モデルに含まれる第2組の神経回路網層を前記1つ以上の3D表現及び前記第1レイアウトに適用して前記物理空間の前記第2部分集合内に前記1つ以上の3D表現の前記配置を決定することとを含む、項1又は2記載のコンピュータ実行方法。
4.前記機械学習モデルの動作により前記物理空間に関連するセンサーデータの意味上区分として前記第1レイアウトを生成するステップを更に含む項1~3のいずれかに記載のコンピュータ実行方法。
5.前記センサーデータは前記物理空間の画像、点群、格子、又は深度マップのうち少なくとも1つを含む、項1~4のいずれかに記載のコンピュータ実行方法。
6.一組の訓練レイアウト、一組の訓練アンカー画像、及び前記第1の3Dボリュームに関連する1つ以上の損失に基づいて前記機械学習モデルを訓練するステップを更に含む項1~5のいずれかに記載のコンピュータ実行方法。
7.前記1つ以上の損失は前記第1の3Dボリューム内の前記物理空間の前記第1部分集合の表現と前記物理空間の対応する部分集合とに基づいて計算されるレイアウト損失を含む、項1~6のいずれかに記載のコンピュータ実行方法。
8.前記1つ以上の損失は前記第1レイアウトと前記第1の3Dボリューム内の前記第1組のアンカーコンテンツの前記1つ以上の3D表現の前記配置とに基づいて計算されるレイアウト損失を含む、項1~7のいずれかに記載のコンピュータ実行方法。
9.前記第1の3Dボリュームは神経放射輝度フィールドを含む、項1~8のいずれかに記載のコンピュータ実行方法。
10.前記第1組のアンカーコンテンツは画像、映像、又は3D物体のうち少なくとも1つを含む、項1~9のいずれかに記載のコンピュータ実行方法。
11.幾つかの実施形態では、1つ以上の持続性コンピュータ読取可能媒体は、命令群であって、1つ以上のプロセッサによって実行される時、前記1つ以上のプロセッサに、物理空間の第1レイアウトと第1組のアンカーコンテンツを機械学習モデルに入力するステップと、前記機械学習モデルの動作により(1)前記物理空間の第1部分集合と(2)前記物理空間の第2部分集合内に前記第1組のアンカーコンテンツの1つ以上の3D表現の配置とを含む第1の3次元(3D)ボリュームを生成するステップと、前記第1の3Dボリュームの1つ以上のビューを計算装置に出力させるステップとを実行させる命令群を記憶する。
12.前記命令群は前記1つ以上のプロセッサに、前記機械学習モデルに含まれる一組の神経回路網層を前記物理空間に関連するセンサーデータに適用して前記第1レイアウトを生成するステップを更に実行させ、前記第1レイアウトは前記センサーデータの複数の領域についての複数の物体の予測を含む、項11記載の1つ以上の持続性コンピュータ読取可能媒体。
13.前記命令群は前記1つ以上のプロセッサに、前記機械学習モデルの動作により(1)前記物理空間の第3部分集合と(2)前記物理空間の第4部分集合内に第2組のアンカーコンテンツの1つ以上の3D表現の配置とを含む第2の3Dボリュームを生成するステップと、前記第2の3Dボリュームの1つ以上のビューを前記計算装置に出力させるステップとを更に実行させる、項11又は12記載の1つ以上の持続性コンピュータ読取可能媒体。
14.前記第1組のアンカーコンテンツ及び前記第2組のアンカーコンテンツは映像に含まれる複数の異なる映像フレーム、2つの異なる場面の描写、又は複数の異なる組の3D物体の少なくとも1つを含む、項11~13のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
15.前記命令群は前記1つ以上のプロセッサに、前記機械学習モデルを前記第1の3Dボリュームに関連する1つ以上の損失に基づいて訓練するステップを更に実行させる、項11~14のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
16.前記1つ以上の損失は前記第1組のアンカーコンテンツと前記3Dボリューム内の前記物理空間の前記第2部分集合の描写とに基づいて計算される類似性損失を含む、項11~15のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
17.前記1つ以上の損失は前記機械学習モデルによって生成された前記第1組のアンカーコンテンツの前記1つ以上の3D表現と1つ以上の3D物体とに基づいて計算される再構成損失を含む、項11~16のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
18.前記1つ以上の損失は前記第1組のアンカーコンテンツの意味上区分と前記第1組のアンカーコンテンツに関連するグラウンド現状データ区分とに基づいて計算される区分損失を含む、項11~17のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
19.前記第1の3Dボリュームの1つ以上のビューを前記計算装置に出力させる前記ステップは、前記1つ以上のビューから前記第1の3Dボリュームを描くことと、前記1つ以上のビューを前記計算装置が提供する拡張現実環境内に出力することとを含む、項11~18のいずれかに記載の1つ以上の持続性コンピュータ読取可能媒体。
20.幾つかの実施形態では、システムは命令群を記憶する1つ以上のメモリと前記1つ以上のメモリと結合された1つ以上のプロセッサとを備え、前記1つ以上のプロセッサは、前記命令群を実行する時、物理空間の第1表現と第1組のアンカーコンテンツを機械学習モデルに入力するステップと、前記機械学習モデルの動作により(1)前記物理空間の第1部分集合と(2)前記物理空間の第2部分集合内に前記第1組のアンカーコンテンツの1つ以上の3D表現の配置とを含む第1の3次元(3D)ボリュームを生成するステップと、前記第1の3Dボリュームの1つ以上のビューを計算装置に出力させるステップとを実行するように構成される。
請求項のいずれかに記述された請求要素のいずれか及び/又は本願に記載されたいずれかの要素の任意の組み合わせ及び全ての組み合わせは、任意のやり方で、本発明及び保護の考慮された範囲内に入る。
様々な実施形態の説明が例示の目的のために提示されたが、網羅的であることも開示した実施形態に限定されることも意図されていない。説明した実施形態の範囲及び要旨から逸脱することなく多くの改良及び変更が、当業者には明らかであろう。
本実施形態の態様はシステム、方法、又はコンピュータプログラム製品として具体化されてもよい。従って、本開示の態様は完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は本明細書において一般に「モジュール」、「システム」、又は「コンピュータ」と呼ばれうるソフトウェア態様とハードウェア態様を組み合わせた実施形態の形をとってもよい。また、本開示に記載されたいずれのハードウェア及び/又はソフトウェア手法、プロセス、機能、構成要素、エンジン、モジュール、又はシステムも回路又は一組の回路として実現されてよい。また、本開示の態様は、コンピュータ読取可能プログラムコードが組み込まれた1つ以上のコンピュータ読取可能媒体に具体化されたコンピュータプログラム製品の形をとってもよい。
1つ以上のコンピュータ読取可能媒体のいずれの組み合わせも利用してよい。コンピュータ読取可能媒体は、コンピュータ読取可能信号媒体又はコンピュータ読取可能記憶媒体であってもよい。コンピュータ読取可能記憶媒体は、例えば、これらに限定されないが、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置、又はデバイス、又はそれらの任意の適切な組み合わせであってよい。コンピュータ読取可能記憶媒体のより具体的な例(非網羅的リスト)は、1つ以上のワイヤーを有する電気的接続、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去・プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバー、携帯型コンパクトディスク読み出し専用メモリ(CD‐ROM)、光学記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含むであろう。本明細書の文脈では、コンピュータ読取可能記憶媒体は、命令実行システム、装置、又はデバイスによる又はに関連した使用のためのプログラムを含み又は記憶しうる任意の有形の媒体であってよい。
本開示の態様は、本開示の実施形態に係るフローチャート図及び/又は方法、装置(システム)、及びコンピュータプログラム製品のブロック図を参照して上記で説明されている。フローチャート図及び/又はブロック図の各ブロックと、フローチャート図及び/又はブロック図内のブロックの組み合わせとはコンピュータプログラム命令群により実施されうることは理解されよう。これらのコンピュータプログラム命令は汎用コンピュータ、特殊用途コンピュータ、又は機械を製造する他のプログラム可能データ処理装置のプロセッサに提供されてもよい。コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行される時、それらの命令はフローチャートに明記された機能/動作及び/又はブロック図内ブロックの実施を可能にする。そのようなプロセッサは、限定されないが、汎用プロセッサ、特殊用途プロセッサ、特定用途向けプロセッサ、又はフィールド・プログラム可能ゲートアレイであってもよい。
図のフローチャート及びブロック図は、本開示の様々な実施形態に係る、システム、方法、及びコンピュータプログラム製品の可能な実施形態のアーキテクチャ、機能、及び動作を例示する。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表す場合がある。なお、別の実施形態では、ブロックに記された機能は、図に記された順番から外れて発生してもよい。例えば、続けて示された2つのブロックは、実際には実質的に同時に実行されるか、又は係る機能に依って、時には逆の順番に実行されるかもしれない。また、ブロック図及び/又はフローチャート図の各ブロックと、ブロック図及び/又はフローチャート図内のブロックの組み合わせとは、指定の機能又は動作を実行する特殊用途ハードウェアシステム又は特殊用途ハードウェア及びコンピュータ命令群の組み合わせにより実施されうる。
上記は本開示の実施形態に向けられているが、本開示の他の及び追加の実施形態を本開示の基本的な範囲から逸脱することなく思い付くかもしれない。本開示の範囲は添付の請求項により決定される。