(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-06
(54)【発明の名称】高解像度ニューラル・レンダリング
(51)【国際特許分類】
G06T 7/50 20170101AFI20240228BHJP
G06T 7/00 20170101ALI20240228BHJP
G06T 15/08 20110101ALI20240228BHJP
【FI】
G06T7/50
G06T7/00 350C
G06T15/08
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023556971
(86)(22)【出願日】2022-03-01
(85)【翻訳文提出日】2023-11-14
(86)【国際出願番号】 US2022018403
(87)【国際公開番号】W WO2022197439
(87)【国際公開日】2022-09-22
(32)【優先日】2021-03-17
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ガービン,ステファン ヨアヒム
(72)【発明者】
【氏名】コワルスキー,マレク アダム
(72)【発明者】
【氏名】ジョンソン,マシュー アラステア
【テーマコード(参考)】
5B080
5L096
【Fターム(参考)】
5B080AA17
5B080BA00
5B080CA00
5B080FA02
5B080FA17
5B080GA06
5L096AA02
5L096AA09
5L096EA39
5L096HA11
5L096KA04
(57)【要約】
複数のカメラ光線に沿った各点についての最終的なRGB値を計算するために、方向データに基づく特定の視線方向に関連付けられた重み付け方式により、位置データに基づいて密度値と放射輝度成分を生成するように機械学習モデルを訓練するための方法及びシステムが提供される。位置データと方向データは、特定の静的なシーンの訓練画像のセットから抽出される。放射輝度成分、密度値、及び重み付け方式は、サンプリングされた各点についてボリューム・レンダリングを実行するための効率的な画像データ処理のためにキャッシュされる。静的なシーンの新規な視点は、サンプリングされた各点に対するボリューム・レンダリングに基づいて生成される。
【特許請求の範囲】
【請求項1】
静的なシーンのカラー出力を生成する機械学習モデルを訓練するために演算システムにより実行される方法であって:
3次元の静的なシーンを特定するステップ;
前記3次元の静的なシーンの複数の視点を含む訓練画像のセットを取得するステップ;
前記訓練画像のセットに対応する複数のカメラ光線を特定するステップ;
前記複数のカメラ光線に沿って点群をサンプリングして、前記点群に含まれる各点について位置データと方向データを取得するステップ;
各点について取得した位置データに関して第1のニューラル・ネットワークを訓練するステップ;
密度値と複数の放射輝度成分とを生成するために前記第1のニューラル・ネットワークを用いて前記位置データを処理するステップ;
前記複数の放射輝度成分を、キャッシュされた放射輝度成分として記憶するステップ;
前記方向データに関して第2のニューラル・ネットワークを訓練するステップ;
複数の視線方向についての重み付け方式を生成するために前記第2のニューラル・ネットワークを用いて前記方向データを処理するステップであって、前記重み付け方式は、前記複数の放射輝度成分に適用される複数のウェイト値を含む、ステップ;
前記複数の視線方向に含まれる各々の視線方向に対する重み付け方式を、キャッシュされた重み付け方式データとして記憶するステップ;及び
特定の視線方向に関連付けられている前記キャッシュされた重み付け方式データに従って、前記キャッシュされた放射輝度成分を結合することによって最終的なカラー値を生成するステップ;
を含む方法。
【請求項2】
請求項1に記載の方法において、更に:
キャッシュ・データベースに含まれる前記密度値及び最終的なカラー値に基づいて、前記複数のカメラ光線に含まれるカメラ光線に沿って、点群の一部に含まれる各点についてボリューム・レンダリングを実行するステップ;及び
前記カメラ光線に沿う前記点群の一部を、前記静的なシーンの2次元画像に含まれるレンダリングされたピクセルに落とすステップ;
を含む方法。
【請求項3】
請求項2に記載の方法において、更に:
前記レンダリングされたピクセルを、前記訓練画像のセットに含まれる訓練画像内の対応するピクセルと比較するステップ;及び
前記レンダリングされたピクセルと、前記訓練画像内の対応するピクセルとの間の誤差を最小化するステップ;
を含む方法。
【請求項4】
請求項1に記載の方法において、更に:
カメラ光線に沿ってサンプリングされた複数の点についての体積密度に基づいて符号-距離関数を計算することによって、前記3次元の静的なシーンのボリュメトリック表現からコリジョン・メッシュを導出するステップ;
前記コリジョン・メッシュにより算出された第1のヒットに対応する、前記複数の点に含まれる第1の点を特定するステップ;及び
前記複数の点に含まれる点群の一部を統合することによって、ボリューム・レンダリングを実行するステップであって、前記点群の一部は、前記第1のヒットの後に前記コリジョン・メッシュにより特定される非エンプティ空間に対応する、ステップ;
を含む方法。
【請求項5】
請求項1に記載の方法において、更に:
カメラ光線に沿ってサンプリングされた複数の点についての体積密度に基づいて符号-距離関数を計算することによって、前記3次元の静的なシーンのボリュメトリック表現からコリジョン・メッシュを導出するステップの前に、
前記ボリュメトリック表現の元の体積に基づいて事前に決定された因子により、前記3次元の静的なシーンのボリュメトリック表現をダウンサイジングするステップ;
を含む方法。
【請求項6】
請求項1に記載の方法において、更に:
前記位置データについて位置エンコーディングを行うステップ;及び
前記方向データについて方向エンコーディングを行うステップ;
を含む方法。
【請求項7】
請求項1に記載の方法において、前記訓練画像のセットは、前記静的なシーンの2DのRGB画像である、方法。
【請求項8】
請求項1に記載の方法において、前記訓練画像のセットは、カメラ・パラメータと静的なシーンの境界とを含むメタデータを更に含む、方法。
【請求項9】
請求項1に記載の方法において、前記複数の放射輝度成分と最終的なカラー値は、RGB成分として設定される、方法。
【請求項10】
請求項1に記載の方法において、前記第1のニューラル・ネットワークと第2のニューラル・ネットワークは、並列的に訓練される、方法。
【請求項11】
請求項1に記載の方法において、前記密度値は、ゼロ以上であり、且つ前記静的なシーンにおける特定の点の不透明性を表現している、方法。
【請求項12】
静的なシーンの新規な視点を、前記静的なシーンについて取得されたキャッシュされた方向及び位置データに基づいて生成するために、演算システムによって実行される方法であって:
3次元の静的なシーンを特定するステップ;
前記3次元の静的なシーンの2次元画像をレンダリングするための起点となる新規な視点を特定するステップ;
前記3次元の静的なシーンのボリュメトリック表現に含まれる複数の点に対する放射輝度成分のキャッシュされたデータベースにアクセスするステップ;
複数の視線方向に対する重み付け方式のキャッシュされたデータベースにアクセスするステップ;及び
前記複数の点に含まれる各点について、重み付け方式に従って各点の放射輝度成分のセットを結合することによって最終的なカラー値を生成するステップであって、前記重み付け方式は、前記複数の視線方向に含まれる1つ以上の新規な視線方向に対応する重み付け方式の前記キャッシュされたデータベースに含まれている、ステップ;
を含む方法。
【請求項13】
請求項12に記載の方法において、更に:
複数の光線と、前記新規な視点に対応する、前記複数の光線に沿う複数の点とを生成するステップ;
を含む方法。
【請求項14】
請求項12に記載の方法において、更に:
前記最終的なカラー値と対応する密度値とに基づいて、各点についてボリューム・レンダリングを実行するステップ;
を含む方法。
【請求項15】
請求項14に記載の方法において、更に:
各点についてのボリューム・レンダリングに基づいて、前記3次元の静的なシーンの新規な画像を生成するステップを含み、前記3次元の静的なシーンの前記新規な画像に含まれる複数のピクセルに、複数の点が落とされる、方法。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 背景
【背景技術】
【0002】
複雑なジオメトリを有する様々な素材及び物体を含む3Dシーンの連続的な3次元(3D)視点(continuous three-dimensional (3D) viewpoint)をレンダリングするための多くの方法が研究されている。そのような研究のゴールは、限られた数の(2次元)2D訓練画像から、シーンの新規な視点をレンダリングできるようにすることである。そのような静的なシーンは、連続的な5D又は6D関数であって、入力として位置と方向をとり、その位置における方向の放射輝度(radiance)を出力するもの、によって表現されることが可能である。代替的に、そのような関数の値域(codomain)が、空間内の各方向及び点における放射輝度である。一部のリサーチは、物体及びシーンを、多層パーセプトロン(multi-layer perceptrons,MLP)のようなニューラル・ネットワークにエンコードすることを対象としている。
【0003】
[0002] ニューラル放射輝度フィールド(Neural Radiance Field,NeRF)は、そのシーンの多数の画像に基づいて3Dシーンをキャプチャするようにニューラル・ネットワークを訓練する、最近発見された方法である。ネットワークが訓練されると、次いで、ネットワークは、任意の視点からのシーンの画像を、任意のカメラ・パラメータとともに生成するために使用されることが可能である。しかしながら、NeRF方法は、シーンの繊細な詳細を正確にレンダリングするが、新規な視点をレンダリングするプロセスは、非常に遅く、演算コストが非常に高くつく。NeRFにおける非効率性の主な原因は、ニューラル・ネットワークが、レンダリングされる各ピクセルに対して200回も呼び出されなければならない、ということである。1MPix画像の場合、これは、単一の画像をレンダリングするためにニューラル・ネットワークに対する2億回の呼び出しをもたらす結果となる。従って、単一の画像をレンダリングするために、演算システムは、これらの詳細な結果を達成するために、長い期間にわたってデータを処理している。
【0004】
[0003] 上記を考慮すると、改善された画像レンダリングのために、そのようなモデルの発展を含む、訓練データ及び訓練モデルを生成するための改善されたシステム及び方法が依然として必要とされている。
【0005】
[0004] 本件でクレームされている対象事項は、如何なる欠点をも解決する実施形態、或いは、上記で説明されたような環境においてのみ動作する実施形態に限定されない。むしろ、この背景の欄は、本件で説明される何らかの実施形態が実施される可能性のある1つの例示的な技術分野を示すだけのために提供されているに過ぎない。
【発明の概要】
【0006】
[0005] 開示される実施形態は、静的なシーン(static scene)のカラー出力を生成する機械学習モデルを訓練するための実施形態を対象としている。3次元(3D)の静的なシーンが特定される。3Dの静的なシーンの複数の視点(viewpoints)を含む訓練画像のセットを取得した後に、訓練画像のセットに対応する複数のカメラ光線(camera rays)が特定される。複数のカメラ光線に沿って点群(A set of points)をサンプリングし、点群に含まれる各点について位置データと方向データを取得する。次いで、第1のニューラル・ネットワークが位置データに関して訓練され、位置データを第1のニューラル・ネットワークを用いて処理して、密度値(density value)と複数の放射輝度成分(radiance components)とを生成する。複数の放射輝度成分と密度値はキャッシュされる。
【0007】
[0006] また、第2のニューラル・ネットワークは方向データに関して訓練される。第2のニューラル・ネットワークにより方向データを処理して、複数の視線方向についての重み付け方式を生成する。重み付け方式は、複数の放射輝度成分に適用される複数のウェイト値を含む。複数の視線方向に含まれる各々の視線方向に対して重み付け方式はキャッシュされ、特定の視線方向に関連付けられているキャッシュされた重み付け方式に従って、キャッシュされた複数の放射輝度成分を結合することによって、最終的なカラー値が生成される。
【0008】
[0007] また、一部の実施形態は、静的なシーンの新規な視点を、静的なシーンについて取得されたキャッシュされた方向及び位置データに基づいて生成するためのシステム及びシステムを対象としてる。このような実施形態において、演算システムは、3次元の静的なシーンと、3次元の静的なシーンの2次元画像をレンダリングするための起点となる新規な視点とを特定する。3次元の静的なシーンのボリュメトリック表現(volumetric representation)に含まれる複数の点に対する放射輝度成分のキャッシュされたデータベースは、複数の視線方向に対する重み付け方式のキャッシュされたデータベースとともにアクセスされる。複数の点に含まれる各点について、重み付け方式に従って各点の放射輝度成分のセットを結合することによって最終的なカラー値を生成し、その重み付け方式は、複数の視線方向における1つ以上の新規な視線方向に対応する重み付け方式のキャッシュされたデータベースに含まれている。
【0009】
[0008] この概要欄は、以下の詳細な説明において更に説明される概念の選択を簡略化された形態で紹介するために提供されている。この概要欄は、クレームされる対象事項の重要な特徴又は本質的な特徴を特定するようには意図されておらず、クレームされる対象事項の範囲を決定する際の補助として使用されるようにも意図されていない。
【0010】
[0009] 追加の特徴及び利点は、以下の説明で述べられるであろうし、一部は説明から自明なものであろうし、或いは、本件の教示内容の慣習によって分かるかもしれない。本発明の特徴及び利点は、添付のクレームにおいて特に指し示されている実装手段及び組み合せによって実現され、得られ可能性がある。本発明の特徴は、以下の説明及び添付のクレームから更に十分に明らかになるであろうし、或いは、以下に記載される本発明の慣習によって分かるかもしれない。
【図面の簡単な説明】
【0011】
[0010] 上記及びその他の利点及び特徴を得ることが可能な方法を説明するために、上記で簡単に説明した対象事項のより具体的な説明は、添付の図面に示される具体的な実施形態を参照することによって行われることになる。これらの図面は典型的な実施形態のみを描いているに過ぎず、従って範囲を限定するように解釈されるべきではないという理解の下で、添付の図面を使用することによって、更なる具体性及び詳細とともに実施形態は記述及び説明されることになる。
【
図1】[0011]
図1は、開示される実施形態の開示される態様を実施するために演算システムが組み込む及び/又は使用される演算環境を示す。
【
図2A】[0012]
図2Aは、訓練画像に基づいて静的なシーンの新規の視点を生成するための例示的な実施形態を示す。
【
図2B】[0012]
図2Bは、訓練画像に基づいて静的なシーンの新規の視点を生成するための例示的な実施形態を示す。
【
図3】[0013]
図3は、静的なシーンのボリュメトリック表現に含まれる点のカラー値を生成する機械学習モデルを訓練するためのプロセス・フロー図の従来の実施形態を示す。
【
図4】[0014]
図4は、ディスエンタングル化された位置及び方向データ(disentangled positional and directional data)に基づいて、静的なシーンのボリュメトリック表現に含まれる点のカラー値を生成する機械学習モデルを訓練するためのプロセス・フロー図の新規な実施形態を示す。
【
図5】[0015]
図5は、キャッシュされた放射輝度成分及びキャッシュされた重み付け方式にアクセスすることによって、静的なシーンの新規の視点を生成するためのプロセス・フロー図の一実施形態を示す。
【
図6】[0016]
図6は、静的なシーンのボリュメトリック表現に含まれる点のカラー値を生成する機械学習モデルを訓練するための複数の動作を含むフロー・チャートの一実施形態を示す。
【
図7】[0017]
図7は、静的なシーンの新規な視点画像を生成するために、静的なシーンのボリュメトリック表現に含まれる点のカラー値を生成するための複数の動作を含むフロー・チャートの一実施形態を示す。
【発明を実施するための形態】
【0012】
[0018] 開示される実施形態は、3次元シーンの新規な視点を生成するため、及び、3次元シーンの新規の視点を生成するように構成されたニューラル・ネットワークを訓練及びキャッシングするための実施形態を対象としている。
【0013】
[0019] ここで
図1に着目すると、開示される発明の態様を含むことが可能である、及び/又は、開示される発明の態様を実装するために使用されることが可能である演算システム110の構成要素が示されている。図示されるように、演算システムは、複数の機械学習(machine learning,ML)エンジン、モデル、ニューラル・ネットワーク、並びに、機械学習エンジン及びモデルの入力及び出力に関連付けられたデータ・タイプを含む。
【0014】
[0020] 先ず、
図1に着目すると、(ネットワーク130を介して)演算システム110と通信するリモート/第三者システム120も含む演算環境100の一部として、演算システム110が示されている。演算システム110は、ボリューム・レンダリング、画像レンダリング、画像データ処理のための複数の機械学習モデルを訓練するように構成され、より具体的には、キャッシュされた位置ベース及び方向ベースのニューラル・ネットワークに基づいて、静的な3次元シーンのボリュメトリック表現における点ごとの光値を生成するために機械学習モデルを訓練するように構成される。また、演算システム110は、機械学習モデルを訓練するように構成された訓練データを生成するように構成される。
【0015】
[0021] 演算システム110は、例えば、1つ以上のプロセッサ112(1つ以上のハードウェア・プロセッサなど)と、コンピュータ実行可能命令118を記憶するストレージ(即ち、ハードウェア・ストレージ・デバイス140)とを含み、1つ以上のハードウェア・ストレージ・デバイス140は、任意の数のデータ・タイプ及び任意の数のコンピュータ実行可能命令118を収容することが可能であり、それによって、演算システム110は、コンピュータ実行可能命令118が1つ以上のプロセッサ112によって実行される場合に、開示される実施形態の1つ以上の態様を実施するように構成されている。演算システム110は、ユーザー・インターフェース114及び入力/出力(I/O)デバイス116を含むようにも示されている。
【0016】
[0022]
図1に示されるように、ハードウェア・ストレージ・デバイス140は、単一のストレージ・ユニットとして示されている。しかしながら、ハードウェア・ストレージ・デバイス140は、幾つかの別個の、時にはリモート及び/又は第三者のシステム120に分散される分散型ストレージとして構築可能である、ということが理解されるであろう。また、演算システム110は、互いに遠隔した異なる個々のシステムであって各々が異なるタスクを実行するもの、によって維持/実行される演算システム110の1つ以上の構成要素を有する分散システムを備えることも可能である。幾つかの例では、複数の分散システムは、分散クラウド環境などにおいて、開示される機能を実施するための同様な及び/又は共有されるタスクを実行する。
【0017】
[0023] ハードウェア・ストレージ・デバイス140は、本件で説明される、画像データ141、カメラ・データ142、位置データ143、方向データ144、放射輝度成分データ145、最終RGBデータ146、重み付け方式データ147、コンピュータ実行可能命令118、体積密度データ148、及び、キャッシュされたMLPモデルを含む、様々なデータ・タイプを記憶するように構成される。
【0018】
[0024] ストレージ(例えば、ハードウェア・ストレージ・デバイス140)は、演算システム110内に示される1つ以上のモデル及び/又はエンジンをインスタンス化又は実行するためのコンピュータ実行可能命令118を含む。モデルは、ディープ・ラーニング・モデル及び/又はアルゴリズム及び/又はニューラル・ネットワークのような、機械学習を行うモデル又は機械学習済みモデルとして構成される。幾つかの例において、1つ以上のモデルは、エンジン又は処理システム(例えば、演算システム110内に統合された演算システム)として構成され、各エンジン(即ち、モデル)は、演算システム110に対応する、1つ以上のプロセッサ(例えば、ハードウェア・プロセッサ112)とコンピュータ実行可能命令118とを含む。
【0019】
[0025] 画像データ141は、様々な視野角(viewing angles)又は視線方向(view directions)においてキャプチャされた複数の画像を含む。追加的又は代替的に、画像データ141は、データが収集される元である特定のソースに対応するメタデータ(即ち、属性、情報、オブジェクト又はシーン識別子など)を含む。メタデータは、静的なシーン又はオブジェクトのタイプに関連付けられた属性、画像データ141の特性、及び/又は、画像データ141がどこで、いつ、及び/又はどのように取得されたのかに関する情報を含む。特定のシーン又はオブジェクトに対応する複数の画像は、複数の画像に含まれる特定の静的なシーン又はオブジェクトの新規の視点をレンダリングするようにニューラル・ネットワークを訓練するための訓練画像として使用される。
【0020】
[0026] カメラ・データ142は、使用されるカメラのタイプ、それがシミュレートされた(又は仮想的な)カメラであるか又は現実のカメラであるか、静的なシーンのボリュメトリック表現に関するカメラ光線の方向、カメラ光線ンズ情報、カメラ・モデル識別子、カメラ・キャプチャ角度の高さ、静的なシーン内の1つ以上のオブジェクトからの距離、並びに、カメラ及びキャプチャ画像に関連するその他の属性、に関するデータを含む。
【0021】
[0027] 位置データ143は、データ・セットとして構成され、各データ点は、(現実の又は仮想的なカメラによってシミュレートされた)カメラ光線に沿ってサンプリングされた点の位置識別子を含む。位置識別子は、静的なシーンの境界が限定されたボリュメトリック表現内の特定の点を指定する3次元座標(例えば、カーテシアン座標)として設定される。従って、位置データ143はまた、ボリュメトリック表現に対する境界データと、ボリュメトリック表現内の1つ以上のオブジェクトの位置とを含む。
【0022】
[0028] 位置データ143は、ボリュメトリック表現内でシミュレートされる各カメラ光線に沿ってサンプリングされた全ての点について記憶される。ストレージ効率を改善するために、訓練済みニューラル・ネットワークをキャッシュする場合に、放射輝度成分及びウェイトを保持するためにスパース・ボリューム(sparse volume)が生成される。入力は球の表面上にあることが知られている(従って、表面の外側のどこでもエンプティ空間(empty space)である)ので、ウェイトはスパース・ボリュームにおいて保持される。また、シーンのうちエンプティである部分は、ネットワークが出力する密度値の知識によって既知であるので、放射輝度成分もまたスパース・ボリュームにおいて保持される。ストレージ効率を更に改善するために、位置データ143は、占有空間(例えば、静的なシーン内の物体又は素材によって占有されている体積空間)についてのみ記憶され、エンプティ空間は、ボリュメトリック・データ・セットに含まれない(スパース・ボリュームと言及される)。
【0023】
[0029] 方向データ144は、データ・セットとして設定され、各データ点は、(現実の又は仮想的なカメラによってシミュレートされる)カメラ光線に沿ってサンプリングされた点について視線方向識別子を含む。視線方向は、光線(ray)の方向であってその方向に関して点がサンプリングされる。また、方向データは、単一の光線に沿う全ての点に対して同じである光線方向である。方向識別子は、点の特定の視野角を指定する3次元ベクトルとして設定される。方向データ144は、ボリュメトリック表現内でシミュレートされる各カメラ光線に沿ってサンプリングされる全ての点について記憶される。一部の例では、方向データ144は、カメラの画像キャプチャ角度を含むカメラ・データ142からも導出され、それは、特定の点の視線方向に対応するものである。位置データ143と方向データ144は、静的なシーンのボリュメトリック表現内でサンプリングされる対応する点のデータを含む。換言すれば、サンプリングされる各点は、位置データ143と方向データ144を有する。
【0024】
[0030] 放射輝度成分データ145は、静的なシーンのボリュメトリック表現に含まれる各点についてのカラー・マップ、ディープ放射輝度マップ、RGB成分、及び/又は、放射輝度成分のセットを含む。換言すれば、放射輝度成分又はRGB値は、静的なシーン内の3Dグリッド上でサンプリングされる点のセットについて生成される。これらのグリッドは、256^3及び/又は512^3個の点のような様々なサイズを有する。放射輝度成分のセットは、重み付け方式(例えば、重み付け方式データ147)に従って組み合わされるように設定される。重み付け方式データ147に含まれる各々の重み付け方式は、静的なシーンの特定の視線方向に対応する。各々の重み付け方式は、最終的なRGB値(例えば、最終RGBデータ146)を形成するために組み合わされることになる放射輝度成分のセットの各放射輝度成分の割合を決定する複数のウェイト値を含む。ウェイト値は、パーセンテージとして記憶される。あるいは、ウェイト値は、合計が1になるようには制約されていない。
【0025】
[0031] また、ハードウェア・ストレージ・デバイス140は、静的なシーンのボリュメトリック表現に含まれる点の不透明度を表すように設定される複数の密度値を含む体積密度データ148を記憶する。密度値は、静的なシーンに含まれる素材又はオブジェクトの不透明度に対応しており、0に等しいか又はそれより大きい。密度についてのゼロ値は、低い不透明度又は透明な点を表す。密度の値が高いほど、不透明度が高いこと、又はより詰まった点を表す。密度値は、静的なシーンのボリュメトリック表現に含まれる素材及びオブジェクトの様々な点の放射輝度、透明度、反射率、又はその他の属性を、RGB値とともに表現することが可能である。
【0026】
[0032] また、ハードウェア・ストレージ・デバイス140は、静的なシーンの訓練画像のセットに基づいて静的なシーンの新規の視点を生成するように構成された機械学習モデルに対応するキャッシュされたネットワーク(例えば、キャッシュされたMLPモデル149)を記憶するようにも構成される。キャッシュされたMLPモデル149は、体積密度データ148及び放射輝度成分データ145を生成するために、位置データ143によってパラメータ化された第1の多層パーセプトロン(MLP)ネットワークを含む。放射輝度成分データ145と体積密度データ148はキャッシュされ、演算システム(例えば、演算システム110)は、キャッシュされたデータにアクセスして、静的なシーンに対する効率的なボリューム・レンダリングを実行することができる。また、キャッシュされたMLPモデル149は、重み付け方式データ147を生成するために、方向データ144によってパラメータ化された第2のMLPネットワークも含む。第2のMLPネットワークによって生成される重み付け方式は、様々な視線方向に従ってキャッシュされ、演算システムは、ボリューム・レンダリング及びその他の画像処理タスクを実行する際に、重み付け方式にアクセスすることができる。
【0027】
[0033] 機械学習(ML)エンジン150を記憶するための追加のストレージ・ユニットは、複数の機械学習モデル及び/又はエンジンを記憶するものとして、ここでは
図1に示されている。例えば、演算システム110は、データ検索エンジン151、サンプリング・エンジン152、特徴抽出エンジン153、訓練エンジン154、組み合わせエンジン155、実施エンジン156、レンダリング・エンジン157であって、本件で説明される様々な機能を実施するように個々に及び/又は集合的に構成されるもの、のうちの1つ以上を含む。
【0028】
[0034] 例えば、データ検索エンジン151は、データ検索エンジン151が訓練データとして使用されるデータのセット又はサブセットを抽出することが可能な1つ以上のデータ・タイプを含む、データ・ソース、データベース、及び/又はストレージ・デバイスを特定してそれらにアクセスするように構成される。データ検索エンジン151は、データベース及び/又はハードウェア・ストレージ・デバイスからデータを受信し、データ検索エンジン151は、訓練データとして使用される受信データを再フォーマットするか、又は他の方法で増補するように構成される。追加的又は代替的に、データ検索エンジン151は、遠隔/第三者データ・セット及び/又はデータ・ソースを含む1つ以上の遠隔/第三者システム(例えば、遠隔/第三者システム120)と通信する。幾つかの例において、これらのデータ・ソースは、テキスト、画像、及び/又はビデオを記録する視覚サービスを含む。
【0029】
[0035] データ検索エンジン151は、画像データ141、カメラ・データ142、位置データ143、方向データ144、放射輝度成分データ145、最終RGBデータ146、重み付け方式データ147、体積密度データ148、及び/又は、その他のタイプのオーディオ・ビジュアル・データであってビデオデータ、画像データ、ホログラフィック・データ、3-D画像データなどを含むもの、を含む電子コンテンツにアクセスする。データ検索エンジン151は、最適なデータ・セット抽出プロセスを学習して、十分な量のデータを適時に提供するとともに、機械学習モデル/エンジンが訓練される目的の所望のアプリケーションにとって最も適用可能なデータを検索することが可能なスマート・エンジンである。例えば、データ検索エンジン151は、所望の画像処理技術においてモデルの精度、効率、及び有効性を高めるために、(例えば、特定のクエリ又は特定のタスクのための)モデルを訓練する訓練データを、どのデータベース及び/又はデータ・セットが生成するかを学習することが可能である。
【0030】
[0036] データ検索エンジン151は、生の記録されたソース・データ(例えば、画像データ141)を特定し、選択し、及び/又は記憶し、データ検索エンジン151は、演算システム110に含まれる1つ以上の他のMLエンジン及び/又はモデルと通信する。そのような場合、データ検索エンジン151と通信する他のエンジンは、1つ以上のデータ・ソースから検索された(即ち、抽出された、引き出された等の)データを受信することができ、その結果、受信されたデータは更に拡張され、及び/又は下流プロセスに適用されるようになる。例えば、データ検索エンジン151は、訓練エンジン154及び/又は実施エンジン156と通信する。
【0031】
[0037] サンプリング・エンジン152は、静的なシーンのボリュメトリック表現内におけるシミュレートされたカメラ光線を特定するように構成される。サンプリング・エンジン152は、次いで、特定のカメラ光線に沿う点群(a set of points)を特定する(即ち、点群をサンプリングする)。サンプリングされた点群に基づいて、特徴抽出エンジン153は、各点についての位置データ143及び方向データ144にアクセスする。特徴抽出エンジン153は、電子コンテンツから、画像データ141及びカメラ・データ142から、位置データ143及び/又は方向データ144の情報を抽出するように構成されている。
【0032】
[0038] 訓練エンジン154は、データ検索エンジン151、サンプリング・エンジン152、特徴抽出エンジン153、又は実施エンジン156のうちの1つ以上と通信する。そのような実施形態では、訓練エンジン154は、データ検索エンジン151から、訓練データの1つ以上のセットを受信するように構成される。特定のアプリケーション又はタスクに関連する訓練データを受信した後、訓練エンジン154は、訓練データに基づいて1つ以上のモデルを訓練する。訓練エンジン154は、教師なし訓練又は教師あり訓練を通じて、モデルを訓練するように構成される。
【0033】
[0039] 訓練エンジン154は、静的なシーンを含む訓練画像のセットに関して1つ以上の機械学習モデル(例えば、MLPニューラル・ネットワーク)を訓練して、静的なシーンの新規な視点を生成するように構成される。より具体的には、訓練エンジン154は、体積密度データ148及び放射輝度成分データ145を生成するために、位置データに基づいて第1のMLPネットワークを訓練するように構成される。訓練エンジン154は、重み付け方式データ147を生成するために、方向データ144に関して第2のMLPネットワークを訓練するように構成される。訓練エンジン154は、静的なシーンのレンダリングされた画像と、静的なシーンの対応する訓練画像との間の誤差を最小化するために、機械学習モデルを訓練するように構成されている。2つのニューラル・ネットワーク(例えば、方向ニューラル・ネットワーク及び位置ニューラル・ネットワーク)の訓練は、2つの別個のステップとして連続して実行される。代替的に、位置データによってパラメータ化された第1のMLPネットワークの訓練と、方向データによってパラメータ化された第2のMLPネットワークの訓練とは、並行して又は同時に行われる。そのような実施形態では、訓練損失(訓練プロセスによって最適化される関数)は、レンダリングされたピクセルを、グラウンド・トゥルース・ピクセルと比較し、単一のピクセルをレンダリングし、次いで、双方のネットワークからの出力が、レンダリングされたピクセルとグラウンド・トゥルース・ピクセルとの間の損失を最小化することを要求する。
【0034】
[0040] 演算システム110は、特定の点に対する最終的なRGB値を生成するために、特定の視線方向に関連付けられた重み付け方式に基づいて、特定の点に対応する放射輝度成分データのセットを組み合わせるように構成された組合せエンジン155を含む。
【0035】
[0041] また、演算システム110は、演算システム110に含まれるモデル及び/又はMLエンジン150の何れか1つ(又はモデル/エンジンの全て)と通信する実施エンジン156を含み、その結果、実施エンジン156は、複数のMLエンジン150の1つ以上の機能を実施、開始又は実行するように構成される。一例では、実装エンジン156は、データ検索エンジン151を動作させるように構成されており、その結果、データ検索エンジン151は、訓練エンジン154のための訓練データを生成することができるように、適時にデータを検索する。
【0036】
[0042] 実施エンジン156は、1つ以上のMLエンジン150の間のプロセス通信及び通信のタイミングを促すものであり、また、キャッシュされたMLPモデルにアクセスして、点ごとの光値(例えば、放射輝度値)、色値を生成し、ボリューム・レンダリングを実行し、訓練画像のセットに含まれる画像によって以前にキャプチャされていない視点に基づいて新規な画像を生成するように構成された機械学習モデル(又は、MLエンジン150のうちの1つ以上)を実施して動作させるように構成されている。
【0037】
[0043] レンダリング・エンジン157は、最終的なRGB値及び密度値に基づいて、特定のカメラ光線に沿ってサンプリングされた各点についてボリューム・レンダリングを実行し、静的なシーンのボリュメトリック表現に含まれる各点についてボリューム・レンダリングを実行し、静的なシーンの新規な視点を含む新たな2D画像をレンダリングするように構成される。また、レンダリング・エンジン157は、複数の新規な視点、及び/又は、静的なシーンのキャプチャされた画像のセットに基づいて、静的なシーンの連続的な3D視点を生成するようにも構成される。より詳細には、放射輝度成分データのセットを組み合わせて最終的なカラー値を生成し、次いで、特定の点についての密度値及び最終的なカラー値を使用してボリューム・レンダリングを実行することによって、画像がレンダリングされる。
【0038】
[0044] レンダリング・エンジン157は、複数のレンダリング・モード、例えば、ボリューム・ルックアップ及びレイ・トレース・ボリューム・ルックアップをサポートする。ボリューム・ルックアップでは、ニューラル・ネットワークに対する呼び出しは、キャッシュ・ルックアップで置き換えられる。レイ・トレース・ボリューム・ルックアップでは、ハードウェア加速レイ・トレーシングを実施して、3次元の静的なシーンのボリューム表現に含まれるエンプティ空間をスキップする。コリジョン・メッシュ(collision mesh)は、密度ボリュームから導出される符号-距離関数(sign-distance function)から計算される。幾つかの例では、512^3ポイントよりも大きいボリュームについて、ボリュームは、メッシュの複雑さを低減するために、2分の1に縮小される。レンダリング・エンジン157は、最初のヒットがコリジョン・メッシュによって特定された後に限り、その光線に沿って点を統合する。メッシュ生成パラメータは、全てのデータ・セットにわたって一定に保持され、コリジョン・メッシュの記憶の複雑さは、グリッド・キャッシュと比較して無視できる。コリジョン・メッシュを活用することによって、演算システムは、レイ・トレースされたボリューム・ルックアップを使用して、キャッシュに対する呼び出しを大幅に少なくし、ボリューム・ルックアップ・モードを使用することを越える改善された演算速度を提供する。
【0039】
[0045] 演算システムは、1つ以上のプロセッサ122と1つ以上のコンピュータ実行可能命令124を備えるリモート/第三者システム120と通信する。幾つかの例において、リモート/第三者システム120は、訓練データとして使用されることが可能なデータ、例えば、ローカル・ストレージに含まれていない静的なシーン・データを収容するデータベースを更に含むことが予想される。追加的又は代替的に、リモート/第三者システム120は、演算システム110の外部に機械学習システムを含む。リモート/第三者システム120は、ソフトウェア・プログラム又はアプリケーションである。
【0040】
[0046] ニューラル放射輝度フィールド(Neural Radiance Fields,NeRF)は、3Dシーンを、そのシーンの一定数の画像に基づいてレンダリングするように、ニューラル・ネットワークを訓練するための方法である。いったんネットワークが訓練されると、ネットワークは、任意の視点からの、シーンの画像を、任意のカメラ・パラメータとともに生成するように構成される。しかしながら、従来のNeRFネットワークは非常に遅い。従来のNeRFネットワークにおける非効率性の主な原因は、ニューラル・ネットワークが、レンダリングされる各ピクセルに対して200回も呼び出されなければならないことである。1MPix画像の場合、これは、単一の画像をレンダリングするために、ニューラル・ネットワークを200×106回呼び出す。
【0041】
[0047] この非効率性に対処するために、本発明は、NeRFニューラル・ネットワークを、効率的な推論のためにキャッシュされることが可能な2つの別個のネットワークに分離するためのシステム及び方法を対象としている。入力の幅広い選択に備えてニューラル・ネットワーク出力をキャッシュし、次いで、ニューラル・ネットワーク処理を、キャッシュ・ルックアップに置き換えることによって、処理時間、ストレージ、及び演算は著しく削減される。ニューラル・ネットワークの位置及び方向成分を分離及びキャッシュするための開示される実施形態は、方向及び位置データを入力パラメータとして受信し、点ごとの光値(例えば、放射輝度)を出力するように構成された任意のニューラル・ネットワークに適用可能である、ということが理解されるであろう。
【0042】
[0048] 静的なシーンは、(1)空間内の各点において各方向に放出される放射輝度と、(2)各点における密度とを出力する連続的な6D関数として表現される。密度は、各点を通過する光線内に存在する放射輝度の量を決定する変数不透明性値(variable opacity value)として設定される。別々にキャッシュされた多層パーセプトロン(MLP)(例えば、畳み込み層を有しない深層全結合ニューラル・ネットワーク)を使用して、特定の点の6D座標(方向ベクトル及び位置)を、単一の体積密度及び視点依存RGBカラーに変換する。静的なシーンの新規な視点(例えば、以前にキャプチャされた画像のセット内に事前には含まれていない視点)をレンダリングするために、静的なシーンのボリュメトリック表現における各点について、体積密度及び視点依存RGBカラーが生成される。所望の新規な視点に基づいて、システムは、新規な視点のレンダリングに対応する全ての点について、体積密度及び視点依存RGBカラーをサンプリングする。
【0043】
[0049] ここで、
図2A及び
図2Bを参照すると、複数のカメラ(例えば、カメラ210)により、又は単一のカメラにより様々な位置で、特定の静的なシーンの複数の画像がキャプチャされる。カメラの画像キャプチャ方向及び位置を含むカメラのパラメータは、システムによって既知であり且つアクセス可能である。静的なシーン240のボリュメトリック表現230が生成され、複数の画像に含まれる各画像の画像キャプチャ方向に基づくカメラ光線(例えば、シミュレートされたカメラ光線220)が、ボリュメトリック表現全体にわたってシミュレートされる。
【0044】
[0050] システムは、各カメラ光線に沿って複数の座標をサンプリングする。複数の座標又は点(例えば、点222,224,226,228)はそれぞれ、画像キャプチャ方向に基づく2D視線方向を有する。シミュレートされたカメラ光線220における各点の位置及び各点に関連する方向は、色及び密度の出力セットを生成するニューラル・ネットワークへの入力として適用される。次いで、古典的なボリューム・レンダリング技術を用いて、これらの色及び密度を2D画像(例えば、画像260)に集約し、ここで、色及び密度のそれぞれのセットによって今や定義された、特定のシミュレートされたカメラ光線に関連付けられた、複数の座標(例えば、点222,224,226,228)は、サンプリングされ、静的なシーン240の新たにレンダリングされた新規な視点に含まれることとなるピクセル(例えば、ピクセル270)に落とされる(collapsed into a pixel)。
【0045】
[0051] 複数の新規な視点は、次いで、静的なシーンに対応する異なる角度からレンダリングされる。新規な視点は、キャプチャされた画像(例えば、訓練画像)のセットに基づいて任意の角度からレンダリングされることが可能である。次いで、複数の新規な視点は、当初にキャプチャされた画像のセットとともに、静的なシーンの連続的な3次元視点を生成するように、(例えば、勾配ベースの最適化により)処理される。
【0046】
[0052] 開示される実施形態は、有利なことに、ボリュメトリック表現の属性から、複雑な現実世界の幾何学的形状(ジオメトリ)及び外観を表現する能力を取り込むことを引き出す。他の利点は、部分的にキャッシュされた多層パーセプトロン(MLP)ネットワークとしてパラメータ化された機械学習モデルを使用して、ニューラル放射輝度フィールドとして、複雑なジオメトリ及び素材を伴う連続的なシーンを表現する(又は新規な視点を生成する)ことによって、ストレージ及び演算コストを低減することを含む。キャッシュされる部分は、位置及び方向のエンコーディングであって、静的なシーンのボリュメトリック表現に対応する6D関数データからディスエンタングル化されたもの(disentangled)に対応する。
【0047】
[0053] また、ボリューム・レンダリング技術が、標準RGB画像を使用して表現を最適化するために使用される。最適化されたサンプリング戦略を使用して、可視的なシーン内容に対応するボリュメトリック表現内の点を識別する(例えば、エンプティ空間の点は、可視的なシーン内容に演算労力を集中させるために、レンダリング・プロセス中に省略される)。
【0048】
[0054] 静的なシーンの連続的な視点は、6Dベクトル値関数によって表現される。この関数への入力は、(例えば、3Dカーテシアン座標によって表現される)位置と、(例えば、3D単位ベクトルによって表現される)視線方向とを含む。出力は、放射された色(例えば、RGBデータ又は放射輝度データ)及び体積密度を含む。連続的な視点は、方向ベース及び位置ベースのパラメータに対してキャッシュされたものを含むデュアルMLPネットワークによってレンダリングされ、位置エンコーディング及び方向エンコーディング入力は、6Dベクトル値関数からディスエンタングル化される。
【0049】
[0055] 開示される実施形態は、有利なことに、位置エンコーディング・データに基づいて、密度及び放射輝度成分セットを生成する。放射輝度成分は、深層放射輝度マップ及び/又はRGBベースのカラー・データである。演算システムは、予め設定された数の放射輝度マップを生成する。方向エンコーディング・データに基づいて、重み付け値のセット、又は重み付け方式が生成され、放射輝度成分のセットに適用されるように設定される。重み付け方式は、光線に沿ってサンプリングされた特定の点に対する最終的なカラー・レンダリングに含まれるべき各々の放射輝度成分の値を決定する。次いで、複数の点が特定の光線に沿ってサンプリングされ、古典的なボリューム・レンダリング技術を用いて、ピクセルの色及び密度レンダリングを生成する。体積密度は、特定の点の位置で終了する光線(例えば、シミュレートされたカメラ光線)の微分確率(differential probability)に対応する。
【0050】
[0056] 位置エンコーディングを生成することは、高周波関数を使用して位置入力をより高次元の空間にマッピングすることを、放射輝度成分及び密度データを生成するように構成されたニューラル・ネットワークに位置入力を適用する前に行うことを含む。このエンコーディング・プロセスは、高周波数変動も含むより正確なデータ・フィッティングを可能にする。追加の関数が、位置座標値(例えば、“x”,“y”,“z”)の各々に適用され、次いで、それらは正規化される。これらの関数は、連続的な入力座標を、より高次元の空間にマッピングして、MLPネットワークが、より高い周波数関数をより良好に近似することを可能にするために使用され、これは、詳細な静的なシーンのより高品質なレンダリングを可能にする。視点のサンプリングにより、フォトリアリスティックな新規な視点(又は訓練画像のセットに基づく新たな視点)をレンダリングすることができる。キャプチャされた画像のセットに基づいて、新規な視点をレンダリングする際のエラーは最小化される。
【0051】
[0057]
図3に示されるように、NeRFニューラル・ネットワークのための従来のシステムは、位置データ310(例えば、カメラ光線に沿った各点の位置座標)を受信するように構成された大型MLP 314(large MLP 314)を含み、位置データは、位置エンコーディング演算312を通じてより高い周波数アプリケーション用に処理される。次いで、大型MLP 314は、密度値316に対応する位置データ310に基づいて、各点に対する密度値316を生成する。また、大型MLP 314は、方向データ320(及び後続の方向エンコーディング・データ322)と結合される特徴ベクトル318を出力し、方向データ320は第2の小型MLP 324によって受信される。この小型MLP 324は、次いで、点ごとに最終的なRGB値326を生成するように構成されている。従って、位置データ310及び方向データ320が2つのニューラル・ネットワークの間でエンタングル化されるこれらの制約に起因して、開示される実施形態による別個のニューラル・ネットワークのキャッシングのようなものは、実現可能ではない。従来のニューラル・ネットワークは、6次元入力(位置に対して3次元、方向に対して3次元)を取り込み、これは、キャッシュするために非常に大量のメモリを取ってしまう。例えば、システムが各入力パラメータについて512個の値をサンプリングし、その出力を(例えば、半精度浮動小数点(float16)で)記憶する場合、キャッシュは、144ペタバイトを占有することになる。
【0052】
[0058] そこで、
図4に示されるように、新規のニューラル・ネットワークが示されており、効率を高め、また、ニューラル・ネットワークをキャッシュするために必要なメモリを低減する。ニューラル・ネットワーク300は、位置MLP 414及び方向MLP 424を含むように示されている。位置MLP 414は、入力として位置データ410(例えば、カメラ光線に沿ってサンプリングされた点の位置に対する3次元座標)を取る。位置データは、位置エンコーディング412を生成するために処理され、次いで、位置エンコーディングは、位置MLP 414によって受信される。位置MLP 414は、サンプリングされた各点に対する位置エンコーディング412を処理し、(1)密度値416と、(2)カラー成分マップとも呼ばれる複数の放射輝度成分418(例えば、ベクトル0,1,2,3,4,5,6,7)とを出力する。
図3は、少なくとも8つの放射輝度成分(例えば、RGBベクトル又はカラー・マップ)を示しているが、任意の数の放射輝度成分418が位置MLP 414によって生成される可能性がある、ということが理解されるであろう。
【0053】
[0059] 第2のニューラル・ネットワーク(例えば、方向MLP 424)が示されており、方向エンコーディング422により処理される方向データ420を、入力パラメータとして受信するように構成される。方向エンコーディング422は、方向データ420(例えば、カメラ光線に沿うサンプリングされた点に対応する3次元ベクトル・データ)から処理される。方向MLP 424は、サンプリングされた点に関連付けられた各方向についての重み付け方式(例えば、ウェイト426)又はウェイト値を生成するように構成される。重み付け方式は、最終的なRGBレンダリングに含まれることになる各々の放射輝度成分の値又は量を決定する。ウェイトは、ドット積により成分と乗算される。放射輝度成分418(即ち、カラー成分マップ)は、最終的なカラー・データ(例えば、最終RGBデータ430)を生成するために、重み付け方式(例えば、ウェイト426)に基づいて、多くの方法で組み合わせられる。次いで、密度値416及び最終的なRGBデータ430を使用して、新規な視点における各ピクセルをレンダリングする。
【0054】
[0060]
図5に示されるように、位置及び視点はディスエンタングル化されているので、モデルは効率的にキャッシュされることが可能である。例えば、システムが各々の入力パラメータについて512個の値をサンプリングし、その出力を(例えば、半精度浮動小数点(float16)で)格納する場合、キャッシュは8.86ギガバイトを占有することになる。これは、標準的なNeRFモデルの対応するキャッシュよりも16,000,000倍以上小さい。更に、この種の密なキャッシュは、ネットワークを記憶するのに必要なメモリ記憶量を著しく削減するスパースな表現に変換可能である。従って、いったんキャッシュが計算されると、ボリューム・レンダリング・プロセスは、新しい視点の各々についてニューラル・ネットワークの演算コストの高い呼び出しを行うのではなく、効率的なルックアップを当てにする。
【0055】
[0061] 具体的には、サンプリングされた点に対応する各方向の重み付け方式は、ウェイト・インデックス510として記憶され、その結果、新しい視点がレンダリングのために選択されると、システムは、ウェイト・インデックス内で適用可能な重み付け方式をルックアップする。放射輝度成分518(例えば、ベクトル0-ベクトル7)もキャッシュされ、その結果、放射輝度成分518は、点ごとの放射輝度成分の特定の組み合わせに基づいて、最終的なRGB値530を形成するように組み合わせられる。最終的なRGB値530及び密度データ516(位置MLPによって以前に出力されている)は、特定の点のボリューム・レンダリング540において使用される。システムは、1つ以上のカメラ光線に沿ってサンプリングされた各点に対して呼び出される。
【0056】
[0062] キャッシュされるデータの生成は、ボリュメトリック表現のサイズに応じて数秒ないし数分かかる。ニューラル・ネットワークが訓練された後に、一度だけしか計算されることを要しないキャッシュが計算されると、その値及びデータは、追加のネットワーク計算なしに、キャッシュ内で直接的にアクセスされるように構成される。
【0057】
[0063] ここで、
図6に着目すると、例示的な方法に関連する様々な動作(動作605,動作610,動作615,動作620,動作625,動作630,動作635,動作640,動作645,動作650,動作655,及び動作660)を含むフロー・チャート600が示されており、その例示的な方法は、静的なシーンの点ごとの光及びカラー値を生成するために訓練データを取得して機械学習モデルを訓練する演算システム110によって実施されることが可能である。
【0058】
[0064] 第1の例示された動作は、3次元(3D)の静的なシーンを特定する動作(動作605)を含む。演算システムは、次いで、3Dの静的なシーンの複数の視点を含む訓練画像のセットを取得し(動作610)、訓練画像のセットに対応する複数のカメラレイを識別する(動作615)。点群は、点群に含まれる各点についての位置及び方向データを取得するために、複数のカメラ光線に沿ってサンプリングされる(動作620)。
【0059】
[0065] 演算システムは、位置データに基づいて第1のニューラル・ネットワークを訓練し(動作625)、第1のニューラル・ネットワークを用いて位置データを処理して、密度値及び複数の放射輝度成分を生成する(動作630)。出力を生成した後に、演算システムは、複数の放射輝度成分をキャッシュする(動作635)。一部の実施形態では、本件で説明される複数の放射輝度成分は、データ・セット内の点の全てを処理することによって得られる複数の放射輝度成分とは相違する。キャッシュは、静的なシーンのグリッド又はボリュメトリック表現上でサンプリングされた3D点にわたって計算される。サンプリングされたこれらの点は、一部の例では、訓練セット内の点に一致する。一部の例では、2つの点群は一致しない。
【0060】
[0066] また、演算システムは、方向データに基づいて第2のニューラル・ネットワークを訓練し(動作640)、第2のニューラル・ネットワークを用いて方向データを処理して、複数の視線方向に対する重み付け方式を生成し、その重み付け方式は、複数の放射輝度成分に適用されるべき複数のウェイト値を含む(動作645)。第1のニューラル・ネットワーク及び第2のニューラル・ネットワークは、多層パーセプトロンとして構成される。
【0061】
[0067] 出力を生成した後、複数の視線方向に含まれる各々の視線方向に対する重み付け方式はキャッシュされる(動作650)。視線方向を記憶する場合に、視線方向は、所望のキャッシュ・サイズに依存する何らかの密度を有する球面上でサンプリングされる。一部の視線方向は、訓練データに含まれる方向に一致している可能性がある。
【0062】
[0068] 最後に、特定の視線方向に関連付けられたキャッシュされた重み付け方式に従って、キャッシュされた複数の放射輝度成分を組み合わせることによって、最終的なカラー値が生成される(動作655)。
【0063】
[0069] また、演算システムは、密度値及び最終的なカラー値に基づいて、複数のカメラ光線に含まれるカメラ光線に沿う一部の点群に含まれる各点についてボリューム・レンダリングを実行する(動作660)。カメラ光線に沿う一部の点群は、静的なシーンの2次元(2D)画像に含まれることになるレンダリングされたピクセルに落とされることが可能である(collapsible)。演算システムは、次いで、拡張仮想現実アプリケーションにおいて、静的なシーンの2次元画像を適用することが可能である。
【0064】
[0070] 代替的に、上述したようなボリューム・レンダリングを実行するために、演算システムはまた、カメラ光線に沿ってサンプリングされた複数の点についての体積密度に基づいて、符号-距離関数を計算することによって、ボリュメトリック表現からコリジョン・メッシュを導出する。複数の点に含まれる第1の点が識別され、これはコリジョン・メッシュによって計算された第1のヒットに対応する。次いで、複数の点に含まれる一部の点群を統合することによってボリューム・レンダリングが実行され、その一部の点群は、第1のヒットの後にコリジョン・メッシュによって識別された非エンプティ空間に対応する。
【0065】
[0071] カメラ光線に沿ってサンプリングされた複数の点の体積密度に基づいて符号-距離関数を計算することによって3次元の静的なシーンのボリュメトリック表現からコリジョン・メッシュを導出する前に、演算システムは、ボリュメトリック表現の元の体積に基づいて、所定の因子によって3次元な静的なシーンのボリュメトリック表現をダウンサイジングする。
【0066】
[0072] レンダリングされたピクセルと訓練画像中の対応するピクセルとの間の誤差を最小化するために、レンダリングされたピクセルは、訓練画像のセットに含まれる訓練画像中の対応するピクセルと比較される。
【0067】
[0073] また、本方法は、位置データのための位置エンコーディングを生成すること、及び、方向データのための方向エンコーディングを生成することも対象としている。
【0068】
[0074] 訓練画像のセットは、静的なシーンの2D及びRGB画像であり、訓練画像のセットは、カメラ・パラメータと静的なシーン境界を含むメタデータを更に含み、放射輝度成分と最終的なカラー値は、放射輝度成分として構成される。静的なシーンの境界は、境界ボックスを定義し、ニューラル・ネットワークに対する入力はその境界ボックスからサンプリングされることになる。近似的なメッシュ又は点群(point cloud)がシーンに対して利用可能である場合、その極値点(extreme points)は境界ボックスを定義する。代替的に、訓練セット内の各カメラに対して指定される近距離及び遠距離光線境界が、境界ボックスを定義するために使用されるか、又は境界ボックスはユーザーにより手動で定義される。
【0069】
[0075] 訓練画像のセットに加えて、演算システムはまた、複数のカメラ光線に対応するカメラ・パラメータのセットを取得し、カメラ・パラメータのセットに基づいて、複数のカメラ光線に含まれる各カメラ光線の最小境界及び最大境界を決定し、最小境界から最大境界まで複数のカメラ光線に沿って点のセットをサンプリングする。
【0070】
[0076] ここで
図7に着目すると、静的なシーンの新規な視点を生成する演算システム110によって実施されることが可能な例示的な方法に関連する様々な動作(動作705,動作710,動作715,動作720,動作725,動作730,及び動作735)を含むフロー・チャートが示されている。
【0071】
[0077] 第1の例示されている動作は、3Dの静的なシーンを特定する動作(動作705)を含み、第2の例示されている動作は、3Dの静的なシーンの2D画像をレンダリングする起点となる新規な視点を特定する動作(動作710)を含む。次いで、演算システムは、3Dの静的なシーンのボリュメトリック表現に含まれる複数の点の放射輝度成分のキャッシュされたデータベースにアクセスし(動作715)、また、複数の視線方向の重み付け方式のキャッシュされたデータベースにアクセスする(動作720)。ボリュメトリック表現は、ニューラル放射輝度フィールドとして構築可能である。この複数の点は、1つ以上の新規な視点からレンダリングされることになる画像を通過する光線に沿って存在する点である。複数の点に含まれる各点に関し、最終的なカラー値は、複数の視線方向に含まれる1つ以上の新規な視線方向に対応する重み付け方式に従って、各点の放射輝度成分のセットを組み合わせることによって生成される(動作725)。
【0072】
[0078] 演算システムは、複数の光線を生成し、それら複数の光線に沿って複数の点が生成され、次いでサンプリングされる。これらの点の色は、動作725に関して計算され、光線が対応するピクセルの色は、動作730において計算される。
【0073】
[0079] 演算システムは、最終的なカラー値及び対応する密度値に基づいて、各点についてボリューム・レンダリングを実行する(動作730)。また、演算システムは、各点についてのボリューム・レンダリングに基づいて、静的なシーンの新規な視点を生成し、ここで、複数の点が、静的なシーンの新規な視点に含まれることになる複数のピクセルに落とされる(動作735)。
【0074】
[0080] 上記に鑑みて、開示される実施形態は、非エンタングル化された位置及び方向データに基づいて、静的なシーンに属する点のRGBカラー値を生成する機械学習モデルを訓練するように構成される機械学習訓練データを生成するための従来のシステム及び方法に勝る多くの技術的利益を提供する、ということが諒解されるであろう。開示される実施形態は、静的なシーンの新規な視点及び/又は連続的な視点を生成するために従来の技法を有益に改善する
[0081] 特に、開示される実施形態は、従来の技法と比較した場合に、マルチ・ビューの一貫性における改善を促し且つアーティファクトを低減する。更に、本発明は、任意の点で問い合わせることが可能な暗黙の関数(implicit function)を使用することによって、レイ・トレーシング及びパス・トレーシング・パラダイムに良好に統合され、システム及び方法は、訓練時に正確な境界ボリューム又はジオメトリを指定する必要性から解放される。
【0075】
[0082] 本発明の実施形態は、本件でより詳細に説明されているように、コンピュータ・ハードウェアを含む専用又は汎用コンピュータ(例えば、演算システム110)を備えるか、又は利用することが可能である。また、本発明の範囲内の実施形態は、コンピュータ実行可能命令及び/又はデータ構造を搬送又は記憶するための物理的及びその他のコンピュータ読み取り可能な媒体も含む。そのようなコンピュータ読み取り可能な媒体は、汎用又は専用コンピュータ・システムによってアクセスすることが可能な任意の利用可能な媒体であるとすることが可能である。コンピュータ実行可能命令(例えば、
図1のコンピュータ実行可能命令118)を記憶するコンピュータ読み取り可能な媒体(例えば、
図1のハードウェア記憶デバイス140)は、伝送媒体を除く物理的なハードウェア記憶媒体/デバイスである。1つ以上の搬送波又は信号でコンピュータ実行可能命令又はコンピュータ可読命令(例えば、コンピュータ実行可能命令118)を搬送するコンピュータ可読媒体は、伝送媒体である。従って、限定ではなく例示として、本発明の実施形態は、物理的なコンピュータ可読記憶媒体/デバイス及びコンピュータ可読伝送媒体という少なくとも2つの明確に異なる種類のコンピュータ可読媒体を含む可能性がある。
【0076】
[0083] 物理的コンピュータ可読記憶媒体/デバイスはハードウェアであり、RAM、ROM、EEPROM、CD-ROM、又はその他の光ディスク・ストレージ(CD、DVDなど)、磁気ディスク・ストレージ、又はその他の磁気記憶デバイス、又はその他の任意のハードウェアであって、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラム・コード手段を記憶するために使用されることが可能であり、且つ汎用又は専用コンピュータによってアクセスされることが可能であるものを含む。
【0077】
[0084] 「ネットワーク」(例えば、
図1のネットワーク130)は、コンピュータ・システム及び/又はモジュール及び/又はその他の電子デバイスの間で電子データの転送を可能にする1つ以上のデータ・リンクとして定義される。情報がネットワーク又は別の通信接続(有線、無線、又は有線もしくは無線の組み合わせのいずれか)を介してコンピュータに転送又は提供される場合に、コンピュータは、その接続を伝送媒体として適切に見なす。伝送媒体は、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラム・コード手段を搬送するために使用されることが可能なネットワーク及び/又はデータ・リンクであって、汎用又は専用コンピュータによってアクセスされることが可能であるものを含むことが可能である。上記の組み合せもまたコンピュータ可読媒体の範囲内に含まれる。
【0078】
[0085] 更に、様々なコンピュータ・システム構成要素に到達すると、コンピュータ実行可能命令又はデータ構造の形態におけるプログラム・コード手段は、コンピュータ可読伝送媒体から物理的コンピュータ可読記憶媒体へ(又はその逆に)自動的に転送されることが可能である。例えば、ネットワーク又はデータ・リンクを介して受信されるコンピュータ実行可能命令又はデータ構造は、ネットワーク・インターフェース・モジュール(例えば、「NIC」)内のRAMにバッファリングされ、そして最終的に、コンピュータ・システムRAMへ及び/又はコンピュータ・システムにおける揮発性がより低いコンピュータ可読物理記憶媒体へ転送されることが可能である。従って、コンピュータ可読物理記憶媒体は、伝送媒体もまた(或いは主としてさえ)利用するコンピュータ・システム構成要素に含まれることが可能である。
【0079】
[0086] コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスが、ある機能又は機能のグループを実行することを引き起こす命令及びデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、中間フォーマット命令(例えば、アセンブリ言語)であってもよいし、又はソース・コードであってさえよい。対象事項は、構造的特徴及び/又は方法論的動作に特有の言葉で説明されているが、添付のクレームで定義される対象事項は、必ずしも、説明された特徴又は上述の動作に限定されない、ということが理解されるべきである。むしろ、説明された特徴及び動作は、クレームを実施する例示的な形態として開示されている。
【0080】
[0087] 当業者は、本発明が、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージ・プロセッサ、ハンド・ヘルド・デバイス、マルチ・プロセッサ・システム、マイクロプロセッサ・ベースの又はプログラマブルな消費者エレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ、携帯電話、PDA、ページャ、ルーター、スイッチなどを含む、多くのタイプのコンピュータ・システム構成を用いてネットワーク演算環境で実施される可能性がある、ということを理解するであろう。また、本発明は分散されたシステム環境で実施されてもよく、その場合、(有線データ・リンク、無線データ・リンクによって、又は、有線データ・リンクと無線データ・リンクの組み合せによって)ネットワークを介してリンクされたローカル及びリモート・コンピュータ・システムの両方がタスクを実行する。分散されたシステム環境では、プログラム・モジュールは、ローカル及びリモートの両方のストレージ・デバイスに配置される可能性がある。
【0081】
[0088] 代替的又は追加的に、本件で説明される機能は、1つ以上のハードウェア論理構成要素によって少なくとも部分的に実行されることが可能である。例えば、限定ではないが、使用されことが可能なハードウェア論理構成要素の例示的なタイプは、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラム専用集積回路(AS IC)、プログラム専用標準製品(ASSP)、システム・オン・チップ・システム(SoC)、複合プログラマブル論理デバイス(CPLD)などを含む。
【0082】
[0089] 本発明は、その本質的な特徴から逸脱することなく、他の特定の形態で具現化されてもよい。説明された実施形態は、あらゆる点において、例示的であるにすぎず、限定的であるように解釈されるべきでない。従って、本発明の範囲は、前述の説明によってではなく、添付のクレームによって示される。クレームの均等物の意味及び範囲内にある全ての変更は、その範囲内に包含されることになる。
【国際調査報告】