(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-21
(54)【発明の名称】潜在変数で条件付けた幾何学的形状認識ニューラルネットワークを使用した、シーンの新規画像のレンダリング
(51)【国際特許分類】
G06T 7/00 20170101AFI20240214BHJP
G06V 10/82 20220101ALI20240214BHJP
G06T 15/08 20110101ALI20240214BHJP
G06T 19/00 20110101ALI20240214BHJP
G06T 17/10 20060101ALI20240214BHJP
【FI】
G06T7/00 350C
G06V10/82
G06T15/08
G06T19/00 A
G06T17/10
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023547481
(86)(22)【出願日】2022-02-04
(85)【翻訳文提出日】2023-10-02
(86)【国際出願番号】 EP2022052754
(87)【国際公開番号】W WO2022167602
(87)【国際公開日】2022-08-11
(32)【優先日】2021-02-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アダム・ロマン・コシオレク
(72)【発明者】
【氏名】ハイコ・シュトラトマン
(72)【発明者】
【氏名】ダニーロ・ヒメネス・レゼンデ
(72)【発明者】
【氏名】ダニエル・ゾラン
(72)【発明者】
【氏名】ポル・モレノ・コメリャス
【テーマコード(参考)】
5B050
5B080
5L096
【Fターム(参考)】
5B050AA08
5B050AA09
5B050BA09
5B050BA11
5B050BA13
5B050DA04
5B050EA26
5B050FA02
5B050FA05
5B080AA17
5B080BA02
5B080CA00
5B080FA02
5B080GA22
5L096CA05
5L096DA01
5L096DA02
5L096HA11
5L096KA04
(57)【要約】
新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像をレンダリングするための、方法、システム、およびコンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む装置が提供される。一態様では、方法は、シーンを特徴付ける複数の観測結果を受信することと、シーンを特徴付ける複数の観測結果から、シーンを表現する潜在変数を生成することと、シーンを表現する潜在変数でシーン表現ニューラルネットワークを条件付けることであって、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークが、3次元(3D)ラディアンスフィールドとしてのシーンの幾何学的モデルを定める、条件付けることと、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像を、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークを使用してレンダリングすることとを含む。
【特許請求の範囲】
【請求項1】
1つまたは複数のデータ処理装置によって実施される、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像をレンダリングするための方法であって、
前記シーンを特徴付ける複数の観測結果を受信するステップであって、各観測結果が、(i)前記シーンの画像、および(ii)前記シーンの前記画像を捕捉したカメラのロケーションを識別するデータを備える、ステップと、
前記シーンを特徴付ける前記複数の観測結果から、前記シーンを表現する潜在変数を生成するステップと、
前記シーンを表現する前記潜在変数でシーン表現ニューラルネットワークを条件付けるステップであって、前記シーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークが、3次元(3D)ラディアンスフィールドとしての前記シーンの幾何学的モデルを定め、
前記シーン内の空間ロケーションの表現物、および観測方向の表現物を受け取ること、ならびに
前記シーン内の前記空間ロケーションの前記表現物、前記観測方向の前記表現物、および前記シーンを表現する前記潜在変数を処理して、前記シーン内の前記空間ロケーションにおいて前記観測方向に放出されるラディアンスを定める出力を生成すること
を行うように、構成されている、ステップと、
前記新規カメラロケーションにおける前記カメラの前記視点から前記シーンを描いた前記新規画像を、前記シーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用して、3Dラディアンスフィールドとしての前記シーンの前記幾何学的モデルからのラディアンス値を前記新規カメラロケーションにおける前記カメラの画像平面上に投影することによって、レンダリングするステップと
を含む、方法。
【請求項2】
前記シーンを特徴付ける前記複数の観測結果から、前記シーンを表現する前記潜在変数を生成するステップが、
前記シーンを特徴付ける前記複数の観測結果から、潜在変数の空間にわたる確率分布のパラメータを生成するステップと、
前記潜在変数の空間から、前記潜在変数の空間にわたる前記確率分布に従って、前記シーンを表現する前記潜在変数をサンプリングするステップと
を含む、請求項1に記載の方法。
【請求項3】
前記シーンを特徴付ける前記複数の観測結果から、前記潜在変数の空間にわたる前記確率分布のパラメータを生成するステップが、
各観測結果のそれぞれの表現物を生成するステップと、
各観測結果の前記それぞれの表現物を、エンコーディングニューラルネットワークを使用して処理して、各観測結果の対応する埋め込みを生成するステップと、
前記複数の観測結果の前記埋め込みから、前記潜在変数の空間にわたる前記確率分布の前記パラメータを生成するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記複数の観測結果の前記埋め込みから、前記潜在変数の空間にわたる前記確率分布の前記パラメータを生成するステップが、
前記複数の観測結果の前記埋め込みを平均するステップであって、前記潜在変数の空間にわたる前記確率分布の前記パラメータが、前記複数の観測結果の前記埋め込みの前記平均に基づく、ステップ
を含む、請求項3に記載の方法。
【請求項5】
前記複数の観測結果の前記埋め込みから、前記潜在変数の空間にわたる前記確率分布の前記パラメータを生成するステップが、
前記潜在変数の空間にわたる現在の確率分布の現在のパラメータを初期化するステップと、
一連の時間ステップにおける各時間ステップについて、
前記潜在変数の空間から、前記潜在変数の空間にわたる前記現在の確率分布に従って、現在の潜在変数をサンプリングするステップと、
前記現在の潜在変数で前記シーン表現ニューラルネットワークを条件付けるステップと、
ターゲットカメラロケーションにおけるカメラの視点から前記シーンを描いた画像を、前記現在の潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用してレンダリングするステップと、
前記潜在変数の空間にわたる前記現在の確率分布の前記現在のパラメータに関する、目的関数の勾配を決定するステップであって、前記目的関数が、(i)前記ターゲットカメラロケーションにおける前記カメラの前記視点から前記シーンを描いた、前記レンダリングされた画像、および(ii)前記ターゲットカメラロケーションにおける前記カメラから捕捉された前記シーンのターゲット画像に応じて決まる、ステップと、
前記潜在変数の空間にわたる前記現在の確率分布の前記現在のパラメータを、(i)前記目的関数の前記勾配、および(ii)前記複数の観測結果の前記埋め込みを使用して更新するステップと
を含む、請求項3に記載の方法。
【請求項6】
前記シーンを表現する前記潜在変数が、複数の潜在部分変数を備える、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記シーン表現ニューラルネットワークが、一連の1つまたは複数の更新ブロックを備え、各更新ブロックが、
前記シーン内の前記空間ロケーションと前記観測方向との現在の共同埋め込みを受け取ること、
前記シーン内の前記空間ロケーションと前記観測方向との前記現在の共同埋め込みを、前記潜在変数の前記複数の潜在部分変数のうちの1つまたは複数にわたるアテンションを使用して更新すること
を行うように、構成されている、請求項6に記載の方法。
【請求項8】
前記アテンションが、マルチヘッドクエリ-キー-バリューアテンションである、請求項7に記載の方法。
【請求項9】
前記シーン内の前記空間ロケーションの前記表現物、前記観測方向の前記表現物、および前記シーンを表現する前記潜在変数を処理して、前記シーン内の前記空間ロケーションにおいて前記観測方向に放出される前記ラディアンスを定める出力を生成するステップが、
前記シーン内の前記空間ロケーションの前記表現物および前記観測方向の前記表現物から、前記シーン内の前記空間ロケーションと前記観測方向との共同埋め込みを生成するステップと、
前記共同埋め込みを、前記一連の1つまたは複数の更新ブロックにおける各更新ブロックを使用して更新するステップと、
前記シーン内の前記空間ロケーションにおいて前記観測方向に放出される前記ラディアンスを定める前記出力を、前記一連の更新ブロックにおける最終更新ブロックによって生成された、前記更新された共同埋め込みから生成するステップと
を含む、請求項7または8に記載の方法。
【請求項10】
各潜在部分変数が複数のチャネルを備え、各更新ブロックにそれぞれの潜在部分変数が割り当てられており、各更新ブロックについて、前記現在の共同埋め込みを、前記潜在変数の前記複数の潜在部分変数のうちの1つまたは複数にわたるアテンションを使用して更新するステップが、
前記現在の共同埋め込みを、前記更新ブロックに割り当てられた前記潜在部分変数のみにわたるアテンションを使用して更新するステップ
を含む、請求項7~9のいずれか一項に記載の方法。
【請求項11】
前記新規画像をレンダリングするステップが、前記新規画像の各画素について、
前記画素に対応する、前記新規カメラロケーションにおける前記カメラの前記画像平面から前記シーン内に投影されるレイを識別するステップと、
前記レイ上の複数の空間ロケーションのそれぞれについて、前記レイ上の前記空間ロケーションにおいて前記レイの方向に放出されるラディアンスを、前記シーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用して決定するステップと、
前記レイ上の前記複数の空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンスに基づいて、前記新規画像内の前記画素の色をレンダリングするステップと
を含む、請求項1~10のいずれか一項に記載の方法。
【請求項12】
前記レイ上の前記複数の空間ロケーションのそれぞれについて、前記レイが前記空間ロケーションにおいて止まることになる可能性を特徴付ける、前記空間ロケーションにおける前記シーンの体積密度を決定するステップと、
前記レイ上の前記複数の空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンスと、前記レイ上の前記複数の空間ロケーションにおける前記体積密度の両方に基づいて、前記新規画像内の前記画素の前記色をレンダリングするステップと
をさらに含む、請求項11に記載の方法。
【請求項13】
前記レイ上の前記複数の空間ロケーションのそれぞれについて、前記空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンス、および前記空間ロケーションにおける前記体積密度を決定するステップが、
前記レイ上の前記空間ロケーションの表現物および前記レイの前記方向の表現物を、前記シーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークに提供して、前記空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンスと前記空間ロケーションにおける前記体積密度とを定める出力を生成するステップ
を含む、請求項12に記載の方法。
【請求項14】
前記レイ上の前記複数の空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンスと、前記レイ上の前記複数の空間ロケーションにおける前記体積密度の両方に基づいて、前記新規画像内の前記画素の前記色をレンダリングするステップが、
前記レイ上の前記複数の空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンス、および前記レイ上の前記複数の空間ロケーションにおける前記体積密度を累積するステップ
を含む、請求項12または13に記載の方法。
【請求項15】
前記シーン表現ニューラルネットワークが、複数のニューラルネットワークパラメータを有し、前記シーン表現ニューラルネットワークが、前記シーンの前記新規画像をレンダリングするために使用される前に、前記ニューラルネットワークパラメータの初期値から前記ニューラルネットワークパラメータのトレーニング後の値を決定するためにトレーニングされ、前記シーン表現ニューラルネットワークをトレーニングするステップが、複数の他のシーンのそれぞれについて、
前記他のシーンを表現する潜在変数で前記シーン表現ニューラルネットワークを条件付けるステップと、
前記他のシーン内のあるロケーションにおけるカメラの視点から前記他のシーンをそれぞれが描いた1つまたは複数の画像を、前記他のシーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用してレンダリングするステップと、
前記シーン表現ニューラルネットワークの前記ニューラルネットワークパラメータの現在の値を、前記他のシーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用してレンダリングされた前記他のシーンの前記画像に応じて決まる目的関数の勾配を使用して更新するステップと
を含む、請求項1から14のいずれか一項に記載の方法。
【請求項16】
1つまたは複数の非一時的コンピュータ記憶媒体であって、命令を記憶し、前記命令が、1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに、請求項1~15のいずれか一項に記載のそれぞれの方法の動作を実施させる、1つまたは複数の非一時的コンピュータ記憶媒体。
【請求項17】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された1つまたは複数の記憶デバイスであって、命令を記憶し、前記命令が、前記1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに、請求項1~15のいずれか一項に記載のそれぞれの方法の動作を実施させる、1つまたは複数の記憶デバイスと
を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年2月4日に出願した、参照によりその全体がここに組み込まれている、米国仮特許出願第63/145,782号の出願日の利益を主張するものである。
【0002】
本明細書は、機械学習モデルを使用してデータを処理することに関する。
【背景技術】
【0003】
機械学習モデルは、入力を受け取り、受け取った入力に基づいて、出力、例えば予測出力を生成する。一部の機械学習モデルは、パラメトリックモデルであり、受け取った入力およびモデルのパラメータの値に基づいて、出力を生成する。
【0004】
一部の機械学習モデルは、モデルの複数の層を用いて、受け取った入力についての出力を生成する、深層モデルである。例えば、深層ニューラルネットワークは、出力層と、受け取った入力にそれぞれが非線形変換を適用して出力を生成する1つまたは複数の隠れ層とを含む、深層機械学習モデルである。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Mildenhallら、「NeRF: Representing scenes as neural radiance fields for view synthesis」、arXiv:2003.08934v2 (2020)
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書では、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像をレンダリングすることのできる、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装される画像レンダリングシステムについて記載する。
【0007】
本明細書全体を通して、「シーン」とは、例えば現実世界環境、または模擬環境(例えば模擬環境が現実世界シーンの合成表現物であるような、例えば現実世界環境の模擬物)を指すことができる。
【0008】
エンティティの「埋め込み」とは、数値の順序付き集合、例えば数値からなるベクトル、行列、または他のテンソルとしての、エンティティの表現物を指すことができる。
【0009】
一態様では、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像をレンダリングするためのシステムおよび方法について記載される。システムは、シーンの画像、およびシーンの画像を捕捉したカメラのロケーションを識別するデータを各観測結果が備える、シーンを特徴付ける複数の観測結果を受信し、これらの観測結果から、シーンを表現する潜在変数を生成する。
【0010】
システムは、シーンを表現する潜在変数で、(トレーニング済みの)シーン表現ニューラルネットワークを条件付ける。シーン表現ニューラルネットワークは、3次元(3D)ラディアンスフィールド(radiance field)としてのシーンのモデルを定める。シーン表現ニューラルネットワークは、シーン内の空間ロケーションの表現物、および観測方向の表現物を受け取ること、ならびにシーン内の空間ロケーションの表現物、観測方向の表現物、およびシーンを表現する潜在変数を処理して、シーン内のその空間ロケーションにおいてその観測方向に放出されるラディアンスを定める出力を生成することを行うように、構成されている。
【0011】
システムは、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像を、3Dラディアンスフィールドとしてのシーンのモデルからのラディアンス値を新規カメラロケーションにおけるカメラの画像平面上に投影することによって、レンダリングする。
【0012】
後述するように、3Dラディアンスフィールドは、例えばシーン内のあらゆる空間ロケーションから放出される方向性ラディアンス(directional radiance)を規定する。したがって、3Dラディアンスフィールドは、シーンを、シーンの3D空間内の各3D位置における、かつ3Dにおける各方向にわたるラディアンス(放出光)として、例えば観測方向依存の放出色として表現するとともに、後述する体積密度をオプションで含む、ベクトル場とすることができる。
【0013】
このモデルは、幾何学的表現、すなわち(3D)位置と、ラディアンスによって示唆されるように方向とに基づくため、幾何学的モデルと呼ぶことができる。実装形態では、潜在変数で条件付けた画像を単に生成するのではなく、シーン表現ニューラルネットワークが、シーンを(3D)空間ロケーションおよび方向に基づいてモデリングし、次いでこれらを使用して、観測方向の(すなわち観測方向に沿った)ラディアンスを定める出力を生成する。次いで、このモデルを使用して、例えばレイに沿ってカメラに至るまで、例えば画像平面内の画素に至るまで累積または積分されるラディアンス値を新規カメラロケーションにおけるカメラの画像平面上に投影することによって、新規画像をレンダリングする。この形態の表現は、任意の特定の視点からの画像ではなくシーンの3D空間をモデリングするものであり、したがって、異なる視点間の整合性ならびに新規視点への一般化を保証することができる。シーン表現ニューラルネットワークが任意の特定のアーキテクチャを有することは、必須ではなく、この利点は、処理される表現物および生成される出力のタイプによってもたらされる。この手法は、必要となる計算およびトレーニングの量を低減させることもでき、というのも、シーン表現ニューラルネットワークは、画像のレンダリングの仕方を学習する必要もないためである。
【0014】
第1の態様によれば、1つまたは複数のデータ処理装置によって実施される、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像をレンダリングするための方法であって、シーンを特徴付ける複数の観測結果を受信することであって、各観測結果が、(i)シーンの画像、および(ii)シーンの画像を捕捉したカメラのロケーションを識別するデータを備える、受信することと、シーンを特徴付ける複数の観測結果から、シーンを表現する潜在変数を生成することと、シーンを表現する潜在変数でシーン表現ニューラルネットワークを条件付けることであって、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークが、3次元(3D)ラディアンスフィールドとしてのシーンの幾何学的モデルを定め、シーン内の空間ロケーションの表現物、および観測方向の表現物を受け取ること、ならびにシーン内の空間ロケーションの表現物、観測方向の表現物、およびシーンを表現する潜在変数を処理して、シーン内の空間ロケーションにおいて観測方向に放出されるラディアンスを定める出力を生成することを行うように、構成されている、条件付けることと、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像を、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークを使用して、3Dラディアンスフィールドとしてのシーンの幾何学的モデルからのラディアンス値を新規カメラロケーションにおけるカメラの画像平面上に投影することによって、レンダリングすることとを含む、方法が提供される。
【0015】
いくつかの実装形態では、シーンを特徴付ける複数の観測結果から、シーンを表現する潜在変数を生成することが、シーンを特徴付ける複数の観測結果から、潜在変数の空間にわたる確率分布のパラメータを生成することと、潜在変数の空間から、潜在変数の空間にわたる確率分布に従って、シーンを表現する潜在変数をサンプリングすることとを含む。
【0016】
いくつかの実装形態では、シーンを特徴付ける複数の観測結果から、潜在変数の空間にわたる確率分布のパラメータを生成することが、
各観測結果のそれぞれの表現物を生成することと、各観測結果のそれぞれの表現物を、エンコーディングニューラルネットワークを使用して処理して、各観測結果の対応する埋め込みを生成することと、複数の観測結果の埋め込みから、潜在変数の空間にわたる確率分布のパラメータを生成することと
を含む。
【0017】
いくつかの実装形態では、複数の観測結果の埋め込みから、潜在変数の空間にわたる確率分布のパラメータを生成することが、複数の観測結果の埋め込みを平均することであって、潜在変数の空間にわたる確率分布のパラメータが、複数の観測結果の埋め込みの平均に基づく、平均することを含む。
【0018】
いくつかの実装形態では、複数の観測結果の埋め込みから、潜在変数の空間にわたる確率分布のパラメータを生成することが、潜在変数の空間にわたる現在の確率分布の現在のパラメータを初期化することと、一連の時間ステップにおける各時間ステップについて、潜在変数の空間から、潜在変数の空間にわたる現在の確率分布に従って、現在の潜在変数をサンプリングすることと、現在の潜在変数でシーン表現ニューラルネットワークを条件付けることと、ターゲットカメラロケーションにおけるカメラの視点からシーンを描いた画像を、現在の潜在変数で条件付けたシーン表現ニューラルネットワークを使用してレンダリングすることと、潜在変数の空間にわたる現在の確率分布の現在のパラメータに関する、目的関数の勾配を決定することであって、目的関数が、(i)ターゲットカメラロケーションにおけるカメラの視点からシーンを描いた、レンダリングされた画像、および(ii)ターゲットカメラロケーションにおけるカメラから捕捉されたシーンのターゲット画像に応じて決まる、決定することと、潜在変数の空間にわたる現在の確率分布の現在のパラメータを、(i)目的関数の勾配、および(ii)複数の観測結果の埋め込みを使用して更新することとを含む。
【0019】
いくつかの実装形態では、シーンを表現する潜在変数が、複数の潜在部分変数を備える。
【0020】
いくつかの実装形態では、シーン表現ニューラルネットワークが、一連の1つまたは複数の更新ブロックを備え、各更新ブロックは、シーン内の空間ロケーションと観測方向との現在の共同埋め込み(joint embedding)を受け取ること、シーン内の空間ロケーションと観測方向との現在の共同埋め込みを、潜在変数の複数の潜在部分変数のうちの1つまたは複数にわたるアテンションを使用して更新することを行うように、構成されている。
【0021】
いくつかの実装形態では、アテンションは、マルチヘッドクエリ-キー-バリューアテンション(multi-head query-key-value attention)である。
【0022】
いくつかの実装形態では、シーン内の空間ロケーションの表現物、観測方向の表現物、およびシーンを表現する潜在変数を処理して、シーン内の空間ロケーションにおいて観測方向に放出されるラディアンスを定める出力を生成することが、シーン内の空間ロケーションの表現物および観測方向の表現物から、シーン内の空間ロケーションと観測方向との共同埋め込みを生成することと、共同埋め込みを、一連の1つまたは複数の更新ブロックにおける各更新ブロックを使用して更新することと、シーン内の空間ロケーションにおいて観測方向に放出されるラディアンスを定める出力を、一連の更新ブロックにおける最終更新ブロックによって生成された、更新された共同埋め込みから生成することとを含む。
【0023】
いくつかの実装形態では、各潜在部分変数が複数のチャネルを備え、各更新ブロックにそれぞれの潜在部分変数が割り当てられており、各更新ブロックについて、現在の共同埋め込みを、潜在変数の複数の潜在部分変数のうちの1つまたは複数にわたるアテンションを使用して更新することが、現在の共同埋め込みを、その更新ブロックに割り当てられた潜在部分変数のみにわたるアテンションを使用して更新することを含む。
【0024】
いくつかの実装形態では、新規画像をレンダリングすることが、新規画像の各画素について、その画素に対応する、新規カメラロケーションにおけるカメラの画像平面からシーン内に投影されるレイを識別することと、レイ上の複数の空間ロケーションのそれぞれについて、レイ上のその空間ロケーションにおいてレイの方向に放出されるラディアンスを、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークを使用して決定することと、レイ上の複数の空間ロケーションにおいてレイの方向に放出されるラディアンスに基づいて、新規画像内の画素の色をレンダリングすることとを含む。
【0025】
いくつかの実装形態では、方法は、レイ上の複数の空間ロケーションのそれぞれについて、レイがその空間ロケーションにおいて止まることになる可能性を特徴付ける、その空間ロケーションにおけるシーンの体積密度を決定することと、レイ上の複数の空間ロケーションにおいてレイの方向に放出されるラディアンスと、レイ上の複数の空間ロケーションにおける体積密度の両方に基づいて、新規画像内の画素の色をレンダリングすることとをさらに含む。
【0026】
いくつかの実装形態では、レイ上の複数の空間ロケーションのそれぞれについて、その空間ロケーションにおいてレイの方向に放出されるラディアンス、およびその空間ロケーションにおける体積密度を決定することが、レイ上の空間ロケーションの表現物およびレイの方向の表現物を、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークに提供して、その空間ロケーションにおいてレイの方向に放出されるラディアンスとその空間ロケーションにおける体積密度とを定める出力を生成することを含む。
【0027】
いくつかの実装形態では、レイ上の複数の空間ロケーションにおいてレイの方向に放出されるラディアンスと、レイ上の複数の空間ロケーションにおける体積密度の両方に基づいて、新規画像内の画素の色をレンダリングすることが、レイ上の複数の空間ロケーションにおいてレイの方向に放出されるラディアンス、およびレイ上の複数の空間ロケーションにおける体積密度を累積することを含む。
【0028】
いくつかの実装形態では、シーン表現ニューラルネットワークが、複数のニューラルネットワークパラメータを有し、シーン表現ニューラルネットワークが、シーンの新規画像をレンダリングするために使用される前に、ニューラルネットワークパラメータの初期値からニューラルネットワークパラメータのトレーニング後の値を決定するためにトレーニングされ、シーン表現ニューラルネットワークをトレーニングすることが、複数の他のシーンのそれぞれについて、他のシーンを表現する潜在変数でシーン表現ニューラルネットワークを条件付けることと、他のシーン内のあるロケーションにおけるカメラの視点から他のシーンをそれぞれが描いた1つまたは複数の画像を、他のシーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークを使用してレンダリングすることと、シーン表現ニューラルネットワークのニューラルネットワークパラメータの現在の値を、他のシーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークを使用してレンダリングされた他のシーンの画像に応じて決まる目的関数の勾配を使用して更新することとを含む。
【0029】
別の態様によれば、1つまたは複数の非一時的コンピュータ記憶媒体であって、命令を記憶し、命令が、1つまたは複数のコンピュータによって実行されると1つまたは複数のコンピュータに、本明細書において説明する方法の動作を実施させる、1つまたは複数の非一時的コンピュータ記憶媒体が提供される。
【0030】
別の態様によれば、1つまたは複数のコンピュータと、1つまたは複数のコンピュータと通信可能に結合された1つまたは複数の記憶デバイスであって、命令を記憶し、命令が、1つまたは複数のコンピュータによって実行されると1つまたは複数のコンピュータに、本明細書において説明する方法の動作を実施させる、1つまたは複数の記憶デバイスとを備える、システムが提供される。
【0031】
本明細書において説明する本主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実施することができる。
【0032】
本画像レンダリングシステムは、シーンの新規画像、すなわち新規カメラロケーションにおけるカメラの視点からシーンを描いたものを、シーンの既存画像のセット、および各既存画像を捕捉したカメラのそれぞれのロケーションを定めるデータに基づいてレンダリングすることを可能にする。したがって、画像レンダリングシステムはしたがって、シーンの新規画像が既存画像のセットから必要に応じて合成によりレンダリングされることを可能にすることによって、リソース、例えばメモリリソースおよびカメラリソースの、より効率的な使用を可能にする。より具体的には、画像レンダリングシステムがない場合、シーンの新規画像を生成するには、カメラを使用して新規画像を物理的に捕捉することが必要となることがあり、それにはカメラリソースの使用が必要となり、またそれは実際的な理由から実行不可能であることがある。さらに、シーンの新規画像を必要に応じて合成によりレンダリングすることにより、例えば新規画像が必要となる前にそれらを記憶しておくために普通なら必要となるはずであるメモリ空間が解放されることによって、メモリリソースの使用が低減する。
【0033】
本明細書において説明する画像レンダリングシステムは、シーンの新規画像を、シーンを表現する潜在変数で条件付けられるとシーンの幾何学的モデルを定めるシーン表現ニューラルネットワークを使用してレンダリングすることができる。幾何学的シーンモデルを明示的に組み込むことにより、画像レンダリングシステムがシーンの新規画像を、例えば明示的な幾何学的モデルを組み込むことなく新規画像をレンダリングするシステムに比べて高い幾何学的精度および現実感でレンダリングすることが可能になる。例えば、幾何学的シーンモデルを組み込むことにより、画像レンダリングシステムが、シーンの既存画像を捕捉したカメラのロケーションとは大幅に異なるカメラロケーションから新規画像をより効果的にレンダリングすることが可能になる。
【0034】
画像レンダリングシステムは、シーン表現ニューラルネットワーク(すなわち幾何学的シーンモデルを実装するもの)のパラメータ値を、複数の異なるシーンから捕捉された画像の集合を使用してトレーニングする。その後、画像レンダリングシステムは、シーン表現ニューラルネットワークを使用して新規シーンの画像を、シーン表現ニューラルネットワークのパラメータ値を新規シーンから捕捉された画像に対して再トレーニングすることなく、レンダリングすることができる。具体的には、画像レンダリングシステムは、シーン表現ニューラルネットワークを新規シーンから捕捉された画像に対して再トレーニングするのではなく、新規シーンを表現する潜在変数でシーン表現ニューラルネットワークを条件付ける。したがって、幾何学的シーンモデルが、シーンにわたって共有される構造を学習し、特定のシーンについての情報が潜在変数内に符号化される。新規シーンを表現する潜在変数でシーン表現ニューラルネットワークを条件付けることにより、画像レンダリングシステムが各新規シーンについてのシーン表現ニューラルネットワークの再トレーニングを回避することが可能になり、それにより、計算リソース(例えばメモリおよび計算能力)の消費が低減する。
【0035】
さらに、画像レンダリングシステムは、新規シーンを効果的に表現するとともに新規画像の正確なレンダリングを可能にする潜在変数を、シーン表現ニューラルネットワークを再トレーニングするために必要となるはずであるよりも大幅に少ない、新規シーンの画像を使用して、生成することができる。したがって、(例えば各新規シーンについてシーン表現ニューラルネットワークを再トレーニングするのではなく)新規シーンを表現する潜在変数でシーン表現ニューラルネットワークを条件付けることによって、画像レンダリングシステムは、リソースのより効率的な使用を可能にする。
【0036】
本明細書の本主題の1つまたは複数の実施形態の詳細は、添付の図面および下の説明中に記載されている。本主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0037】
【
図1】例示的な画像レンダリングシステムのブロック図である。
【
図2】シーンの画像のボリュームレンダリングの例を示す図である。
【
図3】より詳細な例示的な画像レンダリングシステムのブロック図である。
【
図4】画像レンダリングシステム内に含まれる例示的なシーン表現ニューラルネットワークのブロック図である。
【
図5】画像レンダリングシステムを使用して新規画像をレンダリングするための、例示的なプロセスのフロー図である。
【
図6】画像レンダリングシステム内に含まれるエンコーディングニューラルネットワークおよびシーン表現ニューラルネットワークをトレーニングするための、例示的なプロセスのフロー図である。
【
図7】画像レンダリングシステムを使用して得られた実験結果を示す図である。
【
図8】画像レンダリングシステムを使用して得られた実験結果を示す図である。
【発明を実施するための形態】
【0038】
さまざまな図面中の同様の参照番号および名称は、同様の要素を示す。
【0039】
図1は、新規カメラロケーション126dにおけるカメラの視点からシーン125を描いた新規画像108をレンダリングすることのできる、例示的な画像レンダリングシステム100のブロック図である。画像レンダリングシステム100は、下で説明するシステム、コンポーネント、および技法が実装される、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【0040】
「画像」は一般に、例えば「画素」の配列として表現することができ、その際、各画素は、画像内のそれぞれの空間ロケーションと(すなわちカメラの画像平面内のそれぞれの空間ロケーションと)関連付けられ、各画素は、その空間ロケーションにおける画像データを表現する1つまたは複数の数値からなる、それぞれのベクトルに対応する。例えば、2次元(2D)RGB画像は、2D画素配列によって表現することができ、その際、各画素は、画像内のその画素に対応する空間ロケーションにおける赤色、緑色、および青色の強度を表現する値からなる、それぞれの3次元(3D)ベクトルと関連付けられる。
【0041】
本明細書全体を通して、「シーン」とは、例えば現実世界環境、または模擬環境を指すことができる。例えば、
図1に示すように、シーン125は、模擬環境内のさまざまな幾何学的オブジェクトを含むことができる。カメラ「ロケーション」とは、例えばカメラの空間ロケーションおよび/または配向を指すことができる。カメラの空間ロケーションは、例えば、カメラの空間位置を示す3次元ベクトルとして表現することができる。カメラの配向は、例えば、カメラが配向されている方向、例えばカメラのヨー、ピッチ、およびロールを定める、3次元ベクトルとして表現することができる。
【0042】
画像レンダリングシステム100は、シーン125の新規画像108を、シーン125を特徴付ける複数の観測結果102に基づいてレンダリングすることができる。各観測結果は、(i)シーン125の画像、および(ii)シーン125の画像を捕捉したカメラのロケーションを識別するデータを含むことができる。例えば、
図1に示すように、各画像は、異なる観測視点から、例えばそれぞれのカメラロケーションにおけるカメラの視点から、シーン125を描いている。例えば、第1の画像は、ロケーション126aにおけるカメラの視点からシーンを描いており、第2の画像は、ロケーション126bにおけるカメラの視点からシーン125を描いており、第3の画像は、ロケーション126cにおけるカメラの視点からシーン125を描いている。
【0043】
複数の観測結果102内に含まれる一部または全ての画像は、異なる観測視点からシーン125を描いていてよい。一般に、複数の観測結果102は、任意数の異なる観測視点、例えば1、5、50、100、または1000の異なる観測視点からシーン125を描いた画像を含むことができる。
【0044】
画像レンダリングシステム100は、複数の観測結果102、および新規カメラロケーション126dを定めるデータを処理して、新規カメラロケーション126dにおける(例えばシーン125内のカメラの新規配向および/または空間ロケーションにおける)カメラの視点からシーン125を描いた新規画像108をレンダリングすることができる。いくつかの実装形態では、カメラの新規ロケーション126dは、複数の観測結果102内に含まれる画像と関連するカメラロケーション126a、126b、126cのいずれとも異なることができる。換言すれば、システム100は、全く新規の観測視点からシーン125を描いた新規画像108をレンダリングすることができる。
【0045】
画像レンダリングシステム100は、新規画像108を、シーン125を表現する潜在変数104に基づいてレンダリングすることができる。「潜在変数」とは、一般に、潜在空間内の埋め込みを指すことができる。一般に、潜在変数104は、シーン125に固有の特徴、例えばシーン125内に描かれたオブジェクトの位置および種類、シーン125内の色および照明、またはシーン125の他の任意の適切な特徴を、暗黙的に表現することができる。特定の一例では、潜在変数は、数値からなる128次元ベクトルとすることができる。別の特定の例として、潜在変数は、例えば、サイズ[Hz,Wz,Dz]を有する3次元配列とすることができる。
【0046】
画像レンダリングシステム100は、潜在変数104を、エンコーディングニューラルネットワーク110を使用して生成することができる。例えば、エンコーディングニューラルネットワーク110は、異なる観測視点からシーン125を描いた画像、およびそれぞれに対応するカメラロケーション126a、126b、126dを識別するデータを含む、複数の観測結果102を処理して、潜在変数の空間にわたる確率分布のパラメータを生成するように、構成することができる。
【0047】
エンコーディングニューラルネットワーク110を使用して、確率分布のパラメータを生成した後で、画像レンダリングシステム100は、潜在変数の空間から、確率分布に従って、シーン125を表現する潜在変数104をサンプリングすることができる。次いで、システム100は、潜在変数104を使用して、シーン表現ニューラルネットワーク120を条件付け、このシーン表現ニューラルネットワークを使用して、新規カメラロケーション126dにおけるカメラの視点からシーン125の新規画像108をレンダリングすることができる。一般に、シーン125を表現する潜在変数104でシーン表現ニューラルネットワーク120を「条件付けること」とは、例えばシーン表現ニューラルネットワーク120への他の入力とともに処理される、シーン表現ニューラルネットワークへの入力として、潜在変数104を提供することを指すことができる。
【0048】
シーン表現ニューラルネットワーク120は、シーン125を表現する潜在変数104で条件付けられると、例えばシーン125内のあらゆる空間ロケーションにおいて放出される方向性ラディアンスを規定する3次元ラディアンスフィールドとしてのシーン125の幾何学的モデルを定めることができる。より具体的には、観測方向107およびシーン125内の空間ロケーション106を(条件付け用潜在変数104とともに)処理することによって、シーン表現ニューラルネットワーク125は、シーン125内のその空間ロケーション106においてその観測方向107に放出される対応するラディアンスを定める値を出力することができる。シーン内の空間ロケーションにおいて観測方向に放出されるラディアンスは、例えばシーン125内のその空間ロケーションをその観測方向に通過する光の量を特徴付けることができる。換言すれば、潜在変数104で条件付けられた後、シーン表現ニューラルネットワーク120は、それがシーン125内の特定の空間ロケーション106および観測方向107を用いて「照会される」たびに、対応する放出ラディアンスを生成することができる。
【0049】
さらに、新規画像108(すなわち新規カメラロケーション126dにおけるカメラによって捕捉されることになるもの)内の各画素は、新規カメラロケーション126dにおけるカメラの画像平面からシーン125内に投影されるレイと関連付けることができる。下で
図2を参照してより詳細に説明するように、新規画像内の各画素について、画像レンダリングシステム100は、潜在変数104で条件付けたシーン表現ニューラルネットワーク120を使用して、その画素に対応するレイに沿った方向性放出ラディアンスの複数の値を生成することができる。次いで、画像レンダリングシステム100は、シーンの幾何学的モデルからのラディアンス値を新規カメラロケーション126dにおけるカメラの画像平面上に投影することによって、例えば下で
図2を参照してより詳細に説明するボリュームレンダリングを使用することによって、例えば画素ごとに新規画像108をレンダリングすることができる。新規画像108は、新規カメラロケーション126dにおけるカメラの視点から(例えば全く新規の観測視点から)シーン125を描いてよい。
【0050】
特定の一例として、シーン125内の空間ロケーション106は、例えば空間座標からなる3次元ベクトルxとして表現することができる。シーン125内の観測方向107は、例えば3次元単位ベクトルdとして表現することができる。別の例として、観測方向は、球面座標系における2次元ベクトル(θ,φ)を使用して表現することができる。式(1)に示すように、シーン125を表現する潜在変数zで条件付けるとともにパラメータθのセットを有するシーン表現ニューラルネットワークGは、表現物(x,d)を処理して、シーン内のその空間ロケーションにおいてその観測方向に放出されるラディアンス、例えば(r,g,b)を生成することができ、ただし、rは放出される赤色であり、gは放出される緑色であり、bは放出される青色である。
【0051】
【0052】
いくつかの実装形態では、シーン表現ニューラルネットワーク120の出力が、その空間ロケーションxにおけるシーン125の体積密度σをさらに含むことができる。一般に、シーン内の空間ロケーションにおける体積密度は、その空間ロケーションにおけるシーン125の任意の適切な態様を特徴付けることができる。一例では、シーン内の空間ロケーションにおける体積密度は、シーン内を伝わる光のレイがシーン125内のその空間ロケーションxにおいて止まることになる可能性を特徴付けることができる。具体的には、シーン表現ニューラルネットワークは、体積密度σが、観測方向dとは無関係に生成され、したがってシーン125内の空間ロケーションの関数としてのみ変化するように、構成することができる。これにより、同じシーン125の異なる観測視点にわたる体積上の整合性(volumetric consistency)が促進され得る。
【0053】
いくつかの場合には、体積密度は値、例えばσ≧0を有することができ、ただし、ゼロという値は、例えば光のレイが特定の空間ロケーションにおいて止まることになる可能性が無視できることを表し、例えば、おそらくは、シーン125内のその空間ロケーションにオブジェクトがないことを示すことができる。一方、体積密度の大きな正の値は、おそらくは、シーン125内のその空間ロケーションにオブジェクトがあり、したがって、レイがそのロケーションにおいて止まることになる可能性が高いことを示すことができる。
【0054】
上で説明したように、潜在変数104は、シーン125に固有の特徴、例えばシーン125内に描かれたオブジェクトの位置および種類、シーン125内の色および照明、またはシーン125の他の任意の適切な特徴を捕捉することができる。すなわち、潜在変数104はシーンの意味表現と理解することができる。
【0055】
シーン表現ニューラルネットワーク120は、それぞれに対応するシーン内で捕捉された画像の集合を使用してトレーニングすることができる。したがって、トレーニング後、ニューラルネットワーク120のパラメータは、異なるシーン間の共有情報、例えばテクスチャおよび形状、共通要素の特性、または異なるシーン間で共有される他の任意の特徴を捕捉または格納することができる。
【0056】
3次元ラディアンスフィールドとしてのシーン125の幾何学的モデルを明示的に組み込むことにより、画像レンダリングシステム100がシーン125の新規画像を、例えば明示的な幾何学的モデルを組み込むことなく新規画像をレンダリングするシステムに比べて高い幾何学的精度および現実感でレンダリングすることが可能になり得る。例えば、幾何学的シーンモデル(すなわちシーン表現ニューラルネットワークによって表現されるラディアンスフィールドの形態をとるもの)を組み込むことにより、画像レンダリングシステム100が、複数の観測結果102内に含まれる画像を捕捉したカメラのロケーションとは大幅に異なるカメラロケーションから新規画像をより効果的にレンダリングすることが可能になる。
【0057】
エンコーディングニューラルネットワーク110およびシーン表現ニューラルネットワーク120はそれぞれ、説明されるそれら自体の機能をそれらが実施することを可能にする、任意の適切なニューラルネットワークアーキテクチャを有することができる。例えば、それらは、任意の適切な数の、任意の適切な構成で(例えば直線的な一連の層(a linear sequence of layers)として)接続された、任意の適切なニューラルネットワーク層(例えば畳み込み層、全結合層、再帰層、アテンション層など)を含むことができる。特定の一例として、エンコーダニューラルネットワーク110は、一連の1つまたは複数のエンコーダブロック、および1つの出力ブロックを含むことができる。各エンコーダブロックは、例えば1つまたは複数の畳み込みニューラルネットワーク層、バッチ正規化ニューラルネットワーク層、およびエンコーダブロックへの入力をエンコーダブロックからの出力と組み合わせる残差接続を含むことができる。出力ブロックは、例えば1つまたは複数のバッチ正規化ニューラルネットワーク層、および1つまたは複数の畳み込みニューラルネットワーク層を含むことができる。シーン表現ニューラルネットワーク120の例示的なアーキテクチャについては、下で
図4を参照してより詳細に説明する。
【0058】
いくつかの実装形態では、画像レンダリングシステム100は、シーン表現ニューラルネットワーク120およびエンコーディングニューラルネットワーク110をトレーニングデータのセットに対して複数のトレーニング反復にわたって共同でトレーニングすることのできる、トレーニングエンジンを含むことができる。シーン表現ニューラルネットワーク120およびエンコーディングニューラルネットワークをトレーニングするための例示的なプロセスについては、下で
図6を参照してより詳細に説明する。
【0059】
トレーニング後、シーン表現ニューラルネットワーク120を、任意のシーンを表現する潜在変数で条件付けることができる。特定のシーンを表現する潜在変数で条件付けた後、画像レンダリングシステム100は、そのニューラルネットワーク120を使用して、異なる観測視点からその特定のシーンを描いた1つまたは複数の画像をレンダリングすることができる。すなわち、シーンの観測結果の集合からそのシーンを表現する潜在変数104を生成した後、画像レンダリングシステム100は、シーンの任意の所望の数の新規画像を、潜在変数を再生成することなく、潜在変数で条件付けたシーン表現ニューラルネットワークを使用して、生成することができる。
【0060】
画像レンダリングシステム100は、さまざまな可能な応用例のいずれかにおいて使用することができる。画像レンダリングシステム100の可能な応用例のいくつかの例について、次により詳細に説明する。
【0061】
一例では、画像レンダリングシステム100は、物理的環境、例えばストリートの付近の環境を示すインタラクティブパノラマへのアクセスをユーザに提供する、(例えば便宜上「ストリートビュー」アプリケーションと呼ぶ)ソフトウェアアプリケーションの一部として使用することができる。新規カメラロケーションにおけるカメラの視点から物理的環境を表示せよとのユーザ要求に応答して、ストリートビューアプリケーションは、画像レンダリングシステムによって生成されたその環境のレンダリングされた画像をユーザに提供することができる。画像レンダリングシステムは、その環境の新規画像を、例えばその環境を通過した車両上に取り付けられたカメラによって以前に捕捉されたその環境の既存画像の集合に基づいてレンダリングすることができる。
【0062】
別の例では、画像レンダリングシステム100を使用して、生体分子(例えばタンパク質)の1つまたは複数の画像(例えばx線画像)の集合を、生体分子の画像を捕捉したイメージングセンサのロケーションを定めるデータとともに処理し、それによって、新規視点から生体分子の新規画像をレンダリングすることができる。
【0063】
別の例では、画像レンダリングシステム100を使用して、例えば仮想現実ヘッドセットまたはヘルメットにおいて実現される仮想現実環境の画像をレンダリングすることができる。例えば、異なる視点から仮想現実環境を表示せよとのユーザからの要求を受け取ったことに応答して、画像レンダリングシステムは、所望の視点から仮想現実環境の新規画像をレンダリングし、それをユーザに提供することができる。
【0064】
本明細書において説明する技法は、画像の系列、例えばビデオに拡張することができる。
【0065】
図2は、ラディアンスフィールドを使用したシーン250の画像215のボリュームレンダリングの例を示す。ボリュームレンダリングを、画像レンダリングシステム(例えば
図1のシステム100)によって使用して、新規カメラロケーション216におけるカメラの視点からシーン250を描いた画像215をレンダリングすることができる。具体的には、画像レンダリングシステムは、3次元ラディアンスフィールド260としてのシーンの幾何学的モデルを定めるシーン表現ニューラルネットワーク240を使用して、画像215をレンダリングすることができる。
【0066】
上で
図1を参照して説明したように、画像レンダリングシステム内に含まれるシーン表現ニューラルネットワーク240(例えば
図1のニューラルネットワーク120)は、シーン250を表現する潜在変数(例えば
図1のシーン125を表現する潜在変数104)で条件付けられると、例えばシーン250内の異なる空間ロケーションにおける方向性放出ラディアンスを規定する3次元ラディアンスフィールド260としてのシーン250の幾何学的モデルを定めることができる。
【0067】
シーン表現ニューラルネットワークの入力は、シーン250内の空間ロケーションの表現物、およびシーン250内の観測方向の表現物を含むことができる。
図2に示すように、観測方向は、例えば特定の配向を有するとともに新規カメラロケーション216におけるカメラの画像平面から投射されてシーン250を通るレイ210の方向とすることができる。したがって、観測方向の表現物は、例えばレイ210の配向を定める3次元単位ベクトルdとすることができる。(例えばレイ210上の丸によって示された)シーン250内の空間ロケーション230は、例えば空間座標からなる3次元ベクトルxとして表現することができる。一般に、新規カメラロケーション216におけるカメラによって生成された画像215内の各画素は、カメラの画像平面から投射されてシーン250に入るレイ210、およびシーン250内の特定の空間ロケーションにそれぞれが対応するレイ210上の複数の空間ロケーション230と関連付けることができる。(新規画像内の画素に対応するレイの方向および位置は、カメラのパラメータの、例えばカメラの位置および配向、カメラの焦点距離などの、事前定義の関数として計算することができる)。
【0068】
画像レンダリングシステムは、シーン250を表現する潜在変数で条件付けたシーン表現ニューラルネットワーク240に、シーン250内の特定の空間ロケーション230および観測方向210を用いて照会することができる。シーン表現ニューラルネットワーク240は、シーン250内のその空間ロケーション230においてその方向210に放出されるラディアンス(r,g,b)を定める対応する出力を生成することができる。いくつかの実装形態では、ニューラルネットワーク240は、シーン250内のその空間ロケーション230における、例えばレイ210がシーン250内のその空間ロケーション230において止まることになる可能性を特徴付ける、体積密度σを生成することもできる。シーン表現ニューラルネットワーク240を使用することによってラディアンス値(r,g,b)を生成した後で、画像レンダリングシステムは、シーン250の新規画像215を、これらの値を新規カメラロケーション216におけるカメラの画像平面上に投影することによって、レンダリングすることができる。
【0069】
特定の一例として、新規カメラロケーションにおけるカメラに対応する新規画像内の各画素について、画像レンダリングシステムは、その画素に対応する、カメラの画像平面から投影されてシーン250に入る対応するレイ210を識別することができる。画像レンダリングシステムは、ニューラルネットワーク240を使用して、レイ210に沿った、例えばレイに沿って事前定義の間隔を空けた、(例えば
図2に丸として表現された)複数の空間ロケーション230のそれぞれについて、ラディアンス値(r,g,b)を決定することができる。次いで、システムは、それらのラディアンス(r,g,b)に基づいて、例えばレイ210上の異なる空間ロケーションについて決定されたラディアンス(r,g,b)を累積することによって、新規画像内の画素の色をレンダリングすることができる。画像レンダリングシステムはこのプロセスを、新規カメラロケーション216におけるカメラによって捕捉される新規画像内の各画素について反復し、それにより、新規画像215内のあらゆる画素の色をレンダリングすることができる。
【0070】
いくつかの実装形態では、レイ210上の各空間ロケーションについて、画像レンダリングシステムは、ニューラルネットワーク240を使用して、その空間ロケーションにおけるシーン250の体積密度σを決定することもできる。画像レンダリングシステムは、その画素に対応するレイに沿った各点における(i)ラディアンス値と(ii)体積密度の両方に基づいて、新規画像内の各画素の色をレンダリングすることができる。
図2に含まれるグラフは、シーン250内の空間ロケーション230の関数として変化する体積密度σの一例を示し、各グラフは、特定の観測方向(例えば「レイ1」または「レイ2」)に固有のものである。
【0071】
新規画像をレンダリングするために、システムは、新規画像215内の各画素の色を、レイ210上の複数の空間ロケーション230においてレイ210の方向に放出されるラディアンス、およびレイ210上の複数の空間ロケーション230における体積密度σを累積することによって、レンダリングすることができる。システムは、画素に対応するレイに沿ったラディアンスおよび体積密度を、任意の適切な累積技法を使用して累積することができる。例えば、システムは、ラディアンスおよび体積密度を、レイに沿った各ラディアンス値を対応する体積密度でスケーリングし、次いでスケーリング後のラディアンス値の和をとることによって、累積することができる。画素に対応するレイに沿ったラディアンスおよび体積密度を累積するための他の技法については、Mildenhallら、「NeRF: Representing scenes as neural radiance fields for view synthesis」、arXiv:2003.08934v2 (2020)に関して説明されている(この文献では体積密度とアルファ値との対応関係についても説明している)。
【0072】
シーン250の幾何学的モデル260を明示的に組み込むことにより、画像レンダリングシステムがシーン250の新規画像を、例えば明示的な幾何学的モデルを組み込むことなく新規画像をレンダリングするシステムに比べて高い幾何学的精度および現実感でレンダリングすることが可能になる。例えば、幾何学的モデル260を組み込むことにより、システムが、シーンの既存画像を捕捉したカメラのロケーションとは大幅に異なるカメラロケーションから新規画像をより効果的にレンダリングすることが可能になる。特定の一例として、システムは、シーン250を表現する潜在変数で条件付けたニューラルネットワーク240を使用して、(例えばカメラロケーション216に対して垂直なものとして示された)全く異なるカメラロケーション225におけるカメラの視点からシーン250の別の新規画像220をレンダリングすることができる。
【0073】
画像レンダリングシステムについては、次に
図3を参照してより詳細に説明する。
【0074】
図3は、より詳細な例示的な画像レンダリングシステム300(例えば
図1の画像レンダリングシステム100)のブロック図である。画像レンダリングシステム300は、下で説明するシステム、コンポーネント、および技法が実装される、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【0075】
上で
図1を参照して説明したように、画像レンダリングシステム300は、エンコーディングニューラルネットワーク310およびシーン表現ニューラルネットワーク320を含むことができる。システム300は、シーンの画像、およびシーンの画像を捕捉したカメラのロケーションを識別するデータを各観測結果が含む、複数の観測結果302を処理して、シーンを表現する潜在変数304を生成することができる。システム300は、潜在変数304でシーン表現ニューラルネットワーク320を条件付け、そのシーン表現ニューラルネットワーク320を使用して、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像308をレンダリングすることができる。
【0076】
画像レンダリングシステム300は、エンコーディングニューラルネットワーク310を使用して、複数の観測結果302を処理し、潜在変数の空間にわたる確率分布のパラメータを生成することができる。次いで、システム300は、潜在変数の空間から、確率分布に従って、シーンを表現する潜在変数をサンプリングすることができる。エンコーディングニューラルネットワーク110は、確率分布のパラメータを、任意のさまざまな方途で生成することができる。一例では、エンコーディングニューラルネットワーク100は、例えばエンコーディングニューラルネットワーク110を使用して複数の観測結果102を処理することによって生成される、複数の観測結果102の埋め込みを組み合わせることができる。
【0077】
より具体的には、潜在変数の空間にわたる確率分布のパラメータを生成する前に、システムは、複数の観測結果302を処理して、各観測結果302のそれぞれの表現物を生成することができる。
【0078】
シーンを描いた画像内の各画素について、システムは、画像を捕捉したカメラのカメラパラメータ(例えば視野、焦点距離、カメラ空間ロケーション、カメラ配向など)を使用して、その画素に対応する、カメラの画像平面から投影されてシーンに入るレイのパラメータ(例えば配向パラメータおよび位置パラメータ)を決定することができる。各画素の、シーン内に投影されるレイは、例えば3次元単位ベクトルdとして表現される配向を有することができる。システムは、観測結果内に含まれる画像内の各画素について、その画素に対する対応するレイの配向を定めるデータを連結することによって、各観測結果の表現物を生成することができる。換言すれば、画像内の各画素は、関連する5または6次元の特徴ベクトル(c,d)を有することができ、ただし、例えばcは画素のRGB色を表現し、dは画素に対応するレイの配向を表現する。
【0079】
特定の一例として、シーンの画像Ikおよびシーンの画像を捕捉した対応するカメラロケーションckを規定する観測結果kについて、システムは、観測結果の対応する表現物Ckを次のように生成することができ、
Ck=concat(Ik,map_to_rays(ck)) (2)
ただし、「concat」は、連結演算子であり、「map_to_rays」は、上で説明した画像内の各画素に対応するそれぞれのレイの配向を決定する演算子である。複数の観測結果302の表現物を、例えば式(2)に従って生成した後で、システムは、各観測結果のそれぞれの表現物を、エンコーディングニューラルネットワーク310への入力として提供することができる。エンコーディングニューラルネットワーク310は、観測結果の表現物を処理して、観測結果の埋め込みを生成するように、構成することができる。観測結果の「埋め込み」とは、数値の順序付き集合、例えば数値からなるベクトル、行列、または他のテンソルとしての、観測結果の表現物を指すことができる。
【0080】
システムは、複数の観測結果302の埋め込みを使用して、潜在変数の空間にわたる確率分布のパラメータを生成することができる。例えば、システムは、各観測結果のそれぞれの埋め込みを処理して、組み合わされた埋め込みを生成し、次いで、組み合わされた埋め込みを、1つまたは複数のニューラルネットワーク層を使用して処理して、潜在変数の空間にわたる確率分布のパラメータを生成することができる。観測結果Cのセットで条件付けた、パラメータλを有する、潜在変数zの空間にわたる確率分布qは、qλ(z|C)として表現することができる。一例では、システムは、複数の観測結果の埋め込みhkを平均することによって、組み合わされた埋め込みhを生成することができ、例えば
【0081】
【0082】
であり、ただし、Nは観測結果の合計数であり、hkは観測結果kの埋め込みであり、hは埋め込みの平均である。次いで、システム100は、潜在変数zの空間にわたる確率分布qλ(z|C)のパラメータλを、次のように生成することができ、
λ=MLP(h) (4)
ただし、「MLP」は多層パーセプトロンを指すことができる。
【0083】
画像レンダリングシステム300は、潜在変数の空間から、エンコーディングニューラルネットワーク310によって決定されたパラメータλを有する確率分布qλ(z|C)に従って、シーンを表現する潜在変数をサンプリングすることができる。一例では、確率分布は、例えば多次元ガウス分布としてパラメータ化することができ、その際、各次元は、それぞれの平均パラメータおよび標準偏差パラメータによってパラメータ化される。
【0084】
次に、システム300は、例えば上で
図2を参照して説明したように、潜在変数で画像レンダリングニューラルネットワーク320を条件付け、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像を、レンダリングエンジンを使用してレンダリングすることができる。
【0085】
画像レンダリングシステム300内に含まれる例示的なシーン表現ニューラルネットワーク320については、次により詳細に説明する。
【0086】
図4は、画像レンダリングシステム内に含まれる例示的なシーン表現ニューラルネットワーク400(例えば
図1のシーン表現ニューラルネットワーク120)のブロック図である。シーン表現ニューラルネットワーク400は、下で説明するシステム、コンポーネント、および技法が実装される、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【0087】
上で
図1および
図3を参照して説明したように、画像レンダリングシステム内に含まれるエンコーディングニューラルネットワークは、シーンの画像、および画像を捕捉したカメラのロケーションを識別するデータをそれぞれが含む、複数の観測結果を処理して、潜在変数の空間にわたる確率分布のパラメータを生成することができる。システムは、この確率分布に従って、シーンを表現する潜在変数をサンプリングすることができる。次いで、システムは、この潜在変数でシーン表現ニューラルネットワーク400を条件付けることができ、それにより、シーン表現ニューラルネットワークが、3Dラディアンスフィールドとしてのシーンの3D幾何学的モデルを定める。より具体的には、潜在変数で条件付けられるとき、シーン表現ニューラルネットワークは、シーン内の空間ロケーションの表現物、および観測方向の表現物を処理して、シーン内の空間ロケーションにおいて観測方向に放出されるラディアンスとオプションでシーン内の空間ロケーションにおける体積密度とを定めるデータを生成することができる。システムは、潜在変数で条件付けたシーン表現ニューラルネットワークによって定められた3Dラディアンスフィールドを使用して、新規カメラロケーションにおけるカメラの視点からシーンの新規画像を、例えばボリュームレンダリング技法を使用して、レンダリングする。
【0088】
いくつかの実装形態では、シーンを表現する潜在変数は、複数の(例えば1組の)潜在部分変数、例えば組み合わせて潜在変数を形成することのできる変数を含むことができる。例えば、潜在変数zは、サイズ[Hz×Wz×Dz]を有する配列とすることができる。この配列は、複数の部分配列に分割することができ、各部分配列は、潜在変数のそれぞれの部分変数を定めることができる。特定の一例として、配列は、潜在変数のチャネル次元(例えばDz)に沿って部分配列に分割することができ、例えばそれにより、各部分配列が、チャネル次元のそれぞれの真部分集合(すなわちチャネル次元の全てに満たない部分集合)に対応し、サイズ[Hz×Wz×D'z]、ただしD'z<Dzである、を有するようになる。各潜在部分変数は、潜在埋め込み{(h,w,:):1≦h≦Hz,1≦w≦Wz}の集合と理解することができ、ただし、各潜在埋め込みは次元数D'zを有する。
【0089】
そのような場合、シーン表現ニューラルネットワーク400は、1つまたは複数の更新ブロックを使用して、シーン内の空間ロケーションおよび観測方向の表現物を処理して、シーン内のその空間ロケーションにおいて観測方向に放出されるラディアンスを定める出力を生成することができる。具体的には、シーン表現ニューラルネットワーク400は、一連の1つまたは複数の更新ブロック(例えば
図4の「BAB」)を含むことができ、各更新ブロックは、対応する潜在部分変数にわたるアテンションを使用して、例えば対応する潜在部分変数にアテンションメカニズムを適用して、入力埋め込みを更新するために使用される組み合わされた潜在埋め込みを生成することによって、入力埋め込みを更新するように構成されている。使用することのできる多くの異なるアテンションメカニズムがある。アテンションメカニズムは、クエリ-キー-バリューアテンションメカニズムとすることができ、例えば、このアテンションメカニズムでは、組み合わされた潜在埋め込みが値の加重和として計算され、その際、各値の重みは、クエリと対応するキーとの適合関数(compatibility function)、例えばドット積またはスケールドドット積によって計算され、入力埋め込みはクエリにマッピングされ、潜在部分変数内に含まれる各潜在埋め込みはキーおよびバリューにマッピングされる。アテンションメカニズムはマルチヘッドアテンションを実装することができ、すなわちそれにより、複数の異なるアテンションメカニズムが並列に適用され得る。
【0090】
例えば、入力埋め込みを、潜在部分変数にわたるアテンションを使用して更新するために、更新ブロックが、潜在部分変数内に含まれる各潜在埋め込みについてそれぞれのアテンション重みを生成し、潜在部分変数内に含まれる潜在埋め込みおよび対応するアテンション重みに基づいて、組み合わされた潜在埋め込みを生成することができる。特定の一例として、更新ブロックは、例えば潜在部分変数内の各潜在埋め込みに、対応する重みを乗算し、加重された潜在埋め込み同士の和をとることによって、潜在部分変数内の潜在埋め込みの加重和としての、組み合わされた潜在埋め込みを生成することができる。次いで、更新ブロックは、組み合わされた潜在埋め込みを使用して、例えば入力埋め込みを組み合わされた潜在埋め込みと置き換えることによって、組み合わされた潜在埋め込みを入力埋め込みに加算することによって、または他の任意の適切な様式によって、入力埋め込みを更新することができる。
【0091】
いくつかの実装形態では、更新ブロックは、クエリ-キー-バリュー(QKV)アテンション動作、例えば、入力埋め込みを、クエリ(Q)埋め込み、キー(K)埋め込み、およびバリュー(V)埋め込みを使用した、潜在部分変数内の潜在埋め込みにわたるアテンションを使用して更新すること、を実施することができる。具体的には、各更新ブロックは、(i)クエリサブネットワーク、(ii)キーサブネットワーク、および(iii)バリューサブネットワークを含むことができる。各入力埋め込みについて、クエリサブネットワークは、入力埋め込みを処理して、入力埋め込みについてのそれぞれのクエリ埋め込み(Q)を生成するように、構成することができる。キーサブネットワークは、更新ブロックに対応する潜在部分変数内に含まれる各潜在埋め込みを処理して、それぞれのキー埋め込み(K)を生成するように、構成することができる。同様に、バリューサブネットワークは、更新ブロックに対応する潜在部分変数内に含まれる各潜在埋め込みを処理して、それぞれのバリュー埋め込み(V)を生成するように、構成することができる。
【0092】
次いで、各更新ブロックは、クエリ埋め込み(Q)、キー埋め込み(K)、およびバリュー埋め込み(V)を使用して、入力埋め込みを更新することができる。具体的には、各更新ブロックは、例えばクエリ埋め込み(Q)とキー埋め込み(K)のそれぞれとの内(例えばドット)積としての、対応する潜在部分変数内の各潜在埋め込みについてのアテンション重みを生成することができる。潜在部分変数内の潜在埋め込みのセットおよびアテンション重みに基づいて、各更新ブロックは、例えばバリュー埋め込み(V)をそれらのそれぞれに対応するアテンション重みで加重したものの線形結合としての、組み合わされた潜在埋め込みを生成することができる。最後に、各更新ブロックは、入力埋め込みを、組み合わされた潜在埋め込みを使用して更新することができる。
【0093】
特定の一例として、シーン表現ニューラルネットワーク400は、シーン内の空間ロケーションx=(x1,x2,x3)の表現物の埋め込みcirc(x)を、例えば次のように生成することができる。
【0094】
【0095】
シーン表現ニューラルネットワーク400は、1つまたは複数の更新ブロックを使用して、埋め込みcirc(x)を、例えば上で説明した、潜在部分変数にわたるアテンションを使用して更新することができる。次いで、ニューラルネットワーク400は、更新された埋め込みを、多層パーセプトロンニューラルネットワーク層(例えば
図4の「MLP」)を使用して処理して、シーン内のその空間ロケーションにおける体積密度σを定める出力を生成することができる。
【0096】
さらに、シーン表現ニューラルネットワーク400は、観測方向の表現物の埋め込みcirc(d)を、例えば式(5)を参照して説明したものと同様の手続きを使用して、生成することができる。次いで、ニューラルネットワーク400は、埋め込みcirc(d)を、線形ニューラルネットワーク層(例えば
図4の「線形」)を使用して処理し、線形層からの出力を、更新ブロックによって生成されたcirc(x)の更新された埋め込みと組み合わせること(例えば連結すること)によって、共同埋め込みを生成することができる。
【0097】
シーン表現ニューラルネットワーク400は、一連の更新ブロック内の各更新ブロックを使用して、共同埋め込みを、例えば上で説明した、潜在部分変数のセットにわたるアテンションを使用して更新することができる。共同埋め込みが一連の更新ブロック内の最終更新ブロックによって更新された後、ニューラルネットワーク400は、共同埋め込みを、多層パーセプトロンニューラルネットワーク層を使用して処理して、シーン内のその空間ロケーションにおいて観測方向に放出されるラディアンス(例えば
図4の(r,g,b))を定める出力を生成することができる。
【0098】
上で説明したように、潜在変数は、配列とすることができ、配列は、複数の部分配列に分割することができ、その際、各部分配列は、潜在変数のそれぞれの部分変数を定めることができる。特定の一例として、配列は、潜在変数のチャネル次元(例えばDz)に沿って部分配列に分割することができ、例えばそれにより、各部分配列が、チャネル次元のそれぞれの真部分集合(すなわちチャネル次元の全てに満たない部分集合)に対応するようになる。すなわち、潜在変数が配列を備えるとき、潜在部分変数のチャネルは潜在変数のチャネルに対応することができる。いくつかの実装形態では、シーン表現ニューラルネットワーク400の各更新ブロックに、(各潜在部分変数が複数のチャネルを備えるか否かにかかわらず)それぞれの潜在部分変数を割り当てることができる。そのような場合、各更新ブロックは、その入力埋め込みを、その更新ブロックに割り当てられた潜在部分変数の潜在埋め込みのみにわたるアテンションを使用して更新することができる。
【0099】
シーン表現ニューラルネットワーク400および更新ブロックは、説明されるそれら自体の機能をそれらが実施することを可能にする、任意の適切なニューラルネットワークアーキテクチャを有することができる。例えば、アテンションニューラルネットワーク層を含むことに加えて、更新ブロックは、任意の適切な数(例えば2層、5層、または10層)の、任意の適切な構成で(例えば直線的な一連の層として)接続された、他の任意の適切なニューラルネットワーク層(例えば畳み込み層、全結合層、再帰層、アテンション層など)をさらに含むことができる。シーン表現ニューラルネットワーク400は、任意数の更新ブロック、および任意の適切な動作を実施するように構成された任意数の他のニューラルネットワークブロックを含むことができる。
【0100】
画像レンダリングシステムを使用して新規画像をレンダリングするための、例示的なプロセスについて、次により詳細に説明する。
【0101】
図5は、画像レンダリングシステムを使用して新規画像をレンダリングするための、例示的なプロセス500のフロー図である。便宜上、プロセス500については、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータからなるシステムによって実施されるものとして説明する。例えば、本明細書に従って適切にプログラムされた画像レンダリングシステム、例えば
図1のシステム100が、プロセス500を実施することができる。
【0102】
システムは、シーンを特徴付ける複数の観測結果を受信する(502)。各観測結果は、(i)シーンの画像、および(ii)シーンの画像を捕捉したカメラのロケーションを識別するデータを含むことができる。
【0103】
システムは、シーンを特徴付ける複数の観測結果から、シーンを表現する潜在変数を生成する(504)。いくつかの実装形態では、システムは、複数の観測結果を使用して、潜在変数の空間にわたる確率分布のパラメータを生成することができる。例えば、システムは、各観測結果の表現物を生成し、各表現物を、エンコーディングニューラルネットワークを使用して処理して、各観測結果の対応する埋め込みを生成し、それらの埋め込みから、確率分布のパラメータを生成することができる。
【0104】
特定の一例として、システムは、例えばそれらの埋め込みを平均し、次いで、それらの埋め込みの平均を、1つまたは複数のニューラルネットワーク層によって処理して、潜在変数の空間にわたる確率分布のパラメータを生成することができる。例えば、システムは、上で説明したように、組み合わされた埋め込みhを生成し、これを、MLPを使用して処理して、確率分布のパラメータを生成することができる。
【0105】
別の特定の例として、システムは、潜在変数の空間にわたる確率分布のパラメータを、反復プロセスを使用して生成することができる。より具体的には、システムは、確率分布の現在のパラメータを、デフォルト(例えば事前定義のまたはランダムな)値に初期化することができる。現在のパラメータを初期化した後で、一連の時間ステップにおける各時間ステップについて、システムは、潜在変数の空間から、例えばシーンを特徴付ける複数の観測結果302のうちの1つにおいて条件付けた潜在変数の空間にわたる現在の確率分布に従って、現在の潜在変数をサンプリングすることができる。現在の確率分布は、上で説明したように複数の、例えば全ての観測結果の埋め込みを平均することによって、複数の、例えば全ての観測結果で条件付けてもよい。次いで、システムは、現在の潜在変数でシーン表現ニューラルネットワークを条件付け、ターゲットカメラロケーションにおけるカメラの視点からシーンを描いた画像を、現在の潜在変数で条件付けたシーン表現ニューラルネットワークを使用してレンダリングすることができる。ターゲットカメラロケーションは、シーンを特徴付ける複数の観測結果302のうちの1つにおけるカメラのロケーションとすることができる。
【0106】
各時間ステップにおいて、システムは、潜在変数の空間にわたる確率分布の現在のパラメータに関する、目的関数、例えば下で式(6)を参照して説明する目的関数の勾配を決定することができる。最後に、各時間ステップにおいて、システムは、潜在変数の空間にわたる確率分布の現在のパラメータを、(i)確率分布の現在のパラメータに関する目的関数の勾配、および(ii)複数のトレーニング観測結果の埋め込み、すなわち埋め込みニューラルネットワークを使用して生成されるものを使用して、更新することができる。
【0107】
例えば、システムは、複数の観測結果302のうちの1つ、例えばターゲットカメラロケーションに対応する観測結果を、エンコーディングニューラルネットワークを使用して処理して、観測結果の埋め込みE(C)を生成することができる。次いで、システムは、時間ステップt+1における確率分布の現在のパラメータλt+1を、
【0108】
【0109】
として決定することができ、ただし、λtは時間ステップtにおける確率分布のパラメータであり、
【0110】
【0111】
は、例えば下で式(6)において定める、λtに関する目的関数Lの勾配を示し、f(・)は、再帰型「リファインメント」ニューラルネットワーク(recurrent "refinement" neural network)、例えばLSTM(長短期記憶)とその後に続く、LSTMの出力をパラメータλtにマッピングするための線形層である。したがって、リファインメントニューラルネットワークは、観測結果の埋め込み、および確率分布の現在のパラメータに関する目的関数の勾配を処理して、現在のパラメータの更新値を生成する、ニューラルネットワークとすることができる。いくつかの場合には、観測結果の画像内の画素の部分集合のみを処理して、Lの勾配を計算することができる。
【0112】
潜在変数の空間にわたる確率分布のパラメータを生成した後で、システムは、潜在変数の空間から、確率分布に従って、シーンを表現する潜在変数をサンプリングすることができる。
【0113】
システムは、シーンを表現する潜在変数でシーン表現ニューラルネットワークを条件付ける(506)。シーン表現ニューラルネットワークは、3次元(3D)ラディアンスフィールドとしてのシーンの幾何学的モデルを定めることができる。いくつかの実装形態では、シーン表現ニューラルネットワークは、シーン内の空間ロケーションの表現物、および観測方向の表現物を受け取ることができる。このニューラルネットワークは、これらの表現物、およびシーンを表現する潜在変数を処理して、シーン内の空間ロケーションにおいて観測方向に放出されるラディアンスを定める出力を生成することができる。
【0114】
システムは、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像を、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークを使用してレンダリングする(508)。例えば、システムは、3Dラディアンスフィールドとしてのシーンの幾何学的モデルからのラディアンス値を新規カメラロケーションにおけるカメラの画像平面上に投影することができる。
【0115】
いくつかの実装形態では、システムは、新規画像を、画像内の各画素に対応するレイに基づいてレンダリングすることができる。具体的には、システムは、その画素に対応する、新規カメラロケーションにおけるカメラの画像平面からシーン内に(カメラが向いている方向に)投影されるレイを識別することができる。システムは、レイ上の複数の空間ロケーションのそれぞれについて、レイ上のその空間ロケーションにおいてレイの方向に放出されるラディアンスを、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークを使用して決定することができる。次いで、システムは、レイ上の複数の空間ロケーションにおいてレイの方向に放出されるラディアンスに基づいて、新規画像内の画素の色をレンダリングすることができる。
【0116】
いくつかの実装形態では、レイ上の複数の空間ロケーションのそれぞれについて、システムは、レイがその空間ロケーションにおいて止まることになる可能性を特徴付ける、その空間ロケーションにおけるシーンの体積密度を決定することができる。次いで、システムは、レイ上の複数の空間ロケーションにおいてレイの方向に放出されるラディアンスと、レイ上の複数の空間ロケーションにおける体積密度の両方に基づいて、新規画像内の画素の色をレンダリングすることができる。
【0117】
いくつかの実装形態では、その空間ロケーションにおいてレイの方向に放出されるラディアンス、およびその空間ロケーションにおける体積密度を決定することが、レイ上の空間ロケーションおよびレイの方向のそれぞれの表現物を、シーンを表現する潜在変数で条件付けたシーン表現ニューラルネットワークに提供して、その空間ロケーションにおいてレイの方向に放出されるラディアンスとその空間ロケーションにおける体積密度とを定める出力を生成することを含むことができる。
【0118】
いくつかの実装形態では、レイ上の複数の空間ロケーションにおいてレイの方向に放出されるラディアンスと、レイ上の複数の空間ロケーションにおける体積密度の両方に基づいて、新規画像内の画素の色をレンダリングすることが、レイ上の複数の空間ロケーションにおいてレイの方向に放出されるラディアンス、およびレイ上の複数の空間ロケーションにおける体積密度を累積することを含むことができる。
【0119】
一般に、シーン表現ニューラルネットワークは、シーン表現ニューラルネットワークパラメータのセットを有し、エンコーディングニューラルネットワークは、エンコーディングニューラルネットワークパラメータのセットを有する。シーン表現ニューラルネットワークおよびエンコーディングニューラルネットワークは、それらのそれぞれに対応するニューラルネットワークパラメータの初期値からそれらのそれぞれに対応するニューラルネットワークパラメータのトレーニング後の値を決定するために、共同でトレーニングすることができる。例えば、システムは、シーン表現ニューラルネットワークおよびエンコーディングニューラルネットワークを、複数のシーンからの複数の観測結果に対してトレーニングすることができる。
【0120】
図6は、画像レンダリングシステム(例えば
図1のシステム100)内に含まれるエンコーディングニューラルネットワークおよびシーン表現ニューラルネットワークをトレーニングするための、例示的なプロセス600のフロー図である。
【0121】
上で
図1を参照して説明したように、画像レンダリングシステムは、シーン表現ニューラルネットワークおよびエンコーディングニューラルネットワークをトレーニングデータのセットに対して複数のトレーニング反復にわたってトレーニングすることのできる、トレーニングエンジンを含むことができる。いくつかの実装形態では、トレーニングエンジンは、シーン表現ニューラルネットワークとエンコーディングニューラルネットワークを、例えば目的関数の勾配をシーン表現ニューラルネットワークを通じてエンコーディングニューラルネットワーク内にバックプロパゲーションすることによって、共同でトレーニングすることができる。
【0122】
トレーニングデータは、トレーニング例の集合を含むことができ、その際、各トレーニング例は、特定のシーンの観測結果のセット、例えば異なる観測視点からシーンを描いた画像、およびカメラのそれぞれに対応するロケーションを識別するデータを含む。各シーンの観測結果のセットは、(i)トレーニング観測結果のセット、および(ii)ターゲット観測結果のセットに分割することができる。
【0123】
システムは、エンコーディングニューラルネットワークおよびシーン表現ニューラルネットワークを、トレーニングデータ内の各トレーニング例に対してトレーニングすることができる。便宜上、
図6の各ステップでは、エンコーディングニューラルネットワークおよびシーン表現ニューラルネットワークを特定のトレーニング例に対してトレーニングすることについて説明している。
【0124】
システムは、複数のトレーニング観測結果を処理して、シーンを表現する潜在変数を生成する(602)。エンコーディングニューラルネットワークを使用して、複数の観測結果を処理して、シーンを表現する潜在変数を生成するための例示的な技法については、上で
図5のステップ502~504を参照して説明している。
【0125】
システムは、シーンを表現する潜在変数でシーン表現ニューラルネットワークを条件付ける(604)。
【0126】
システムは、各ターゲット観測結果に対応するそれぞれの予測画像を、(i)潜在変数で条件付けたシーン表現ニューラルネットワーク、および(ii)ターゲット観測結果によって規定されるカメラロケーションを使用して生成する(606)。いくつかの場合には、予測画像内の各画素についての画素値を生成するのではなく、システムは、予測画像内の各画素についての可能な画素値のセットにわたるそれぞれの確率分布を生成する。予測画像を、環境の3D幾何学的モデルを定めるシーン表現ニューラルネットワークを使用してレンダリングするための例示的なプロセスについては、上で
図2を参照して説明している。
【0127】
システムは、シーン表現ニューラルネットワークを使用してレンダリングされたシーンの予測画像に応じて決まる目的関数の勾配を、例えばバックプロパゲーション技法を使用して決定する(608)。目的関数は、任意の適切な目的関数、例えば変分目的関数(例えばエビデンス下界関数)とすることができる。例えば、ターゲット観測結果によって規定されるターゲット画像について評価される目的関数Lは、
L=Ez~q[logpθ(I|z,c)]-KL(qλ(z|C)||p(z)) (6)
によって与えることができ、ただし、pθ(I|z,c)は、予測画像とターゲット画像との誤差を特徴付け、qλ(z|C)は、潜在変数の空間にわたる確率分布を示し、p(z)は、潜在変数の空間にわたる事前定義の事前分布を示し、KL(qλ(z|C)||p(z))は、qλ(z|C)とp(z)との間のダイバージェンス(例えばカルバックライブラーダイバージェンス)を示す。いくつかの実装形態では、pθ(I|z,c)は、ターゲット画像内の各画素の値の、その画素についてシーン表現ニューラルネットワークを使用して生成された確率分布下での、尤度の積を定める。他の実装形態では、pθ(I|z,c)は、は、予測画像とターゲット画像との間の誤差、例えばL2誤差を示すことができる。
【0128】
いくつかの実装形態では、システムは、シーン表現ニューラルネットワーク320の、1つは3D点の粗なセットに基づき、もう1つは3D点のより細かなセットに基づく、2つのインスタンスを維持することができる。これらを同じ潜在変数で条件付けることができ、それらの出力を組み合わせて、画像をレンダリングすることができる。その場合、トレーニングの際に式(6)は追加の尤度項(logpθ(I))を有することができる。
【0129】
トレーニングエンジンは、シーン表現ニューラルネットワークのパラメータ値およびエンコーディングニューラルネットワークのパラメータ値を、勾配を使用して、例えば任意の適切な勾配降下最適化アルゴリズム、例えばAdamまたはRMSpropを使用して、更新することができる。
【0130】
いくつかの場合には、システムは、確率分布のパラメータを反復的に最適化することができる。より具体的には、システムは、確率分布の現在のパラメータを、デフォルト(例えば事前定義のまたはランダムな)値に初期化することができる。現在のパラメータを初期化した後で、一連の時間ステップにおける各時間ステップについて、システムは、潜在変数の空間から、潜在変数の空間にわたる現在の確率分布に従って、現在の潜在変数をサンプリングすることができる。次いで、システムは、現在の潜在変数でシーン表現ニューラルネットワークを条件付け、(ターゲット観測結果によって規定される)ターゲットカメラロケーションにおけるカメラの視点からシーンを描いた画像を、現在の潜在変数で条件付けたシーン表現ニューラルネットワークを使用してレンダリングすることができる。
【0131】
各時間ステップにおいて、システムは、潜在変数の空間にわたる確率分布の現在のパラメータに関する、目的関数、例えば式(6)を参照して説明した目的関数の勾配を決定することができる。最後に、各時間ステップにおいて、システムは、潜在変数の空間にわたる確率分布の現在のパラメータを、(i)確率分布の現在のパラメータに関する目的関数の勾配、および(ii)複数のトレーニング観測結果の埋め込み、すなわち埋め込みニューラルネットワークを使用して生成されるものを使用して、更新することができる。例えば、システムは、時間ステップt+1における確率分布の現在のパラメータλt+1を、
【0132】
【0133】
として決定することができ、ただし、λtは時間ステップtにおける確率分布のパラメータであり、E(C)は、複数のトレーニング観測結果の埋め込みの平均を示し、
【0134】
【0135】
は、λtに関する目的関数の勾配を示し、f(・)は、例えば先に説明した「リファインメント」ニューラルネットワークである。リファインメントニューラルネットワークのパラメータは、エンコーディングニューラルネットワークのパラメータ値と一緒にトレーニングすることができる。
【0136】
潜在空間にわたる確率分布の最適化されたパラメータを決定した後で、システムは、潜在変数を、最適化された確率分布に従ってサンプリングし、次いで、最適化された確率分布からサンプリングされた潜在変数を使用したステップ604~610の実施に移ることができる。
【0137】
図7は、本明細書において説明した画像レンダリングシステムを使用して得られた実験結果を示す。具体的には、グラフ702は、(i)本明細書において説明した画像レンダリングシステム(赤線)、および(ii)代替の画像レンダリングシステム(青線)によって生成された画像の平均二乗誤差(MSE)をプロットしたものである。MSEは、例えばシーン表現ニューラルネットワークを条件付けるために使用される潜在変数を生成するために画像レンダリングシステムによって使用された観測結果の数を表す、「ビューの数(number of views)」に対してプロットされている。グラフ704は、本明細書において説明した画像レンダリングシステムによって生成された画像のMSEのヒストグラムを示し、グラフ706は、代替の画像レンダリングシステムによって生成された画像のMSEのヒストグラムを示す。本明細書において説明した画像レンダリングシステムが、代替の画像レンダリングシステムより著しく性能が優れていることが理解できよう。
【0138】
図8は、(i)本明細書において説明した画像レンダリングシステム(「II+ATT」)、および(ii)代替の画像レンダリングシステム(「C-AR-VAE」)を使用して生成された画像の予測精度を比較したものである。本明細書において説明した画像レンダリングシステムのほうが、「分布内(within distribution)」視点および「分布外(out-of-distribution)」視点からの画像の生成について、小さなMSEを達成することが理解できよう。新規画像の視点は、例えばシーン表現ニューラルネットワークを条件付けるための潜在変数を生成するために使用されるシーンの既存画像のセットの視点と同じ分布から新規画像が描かれた場合、分布内と称することができる。反対に、新規画像の視点は、シーンの既存画像のセットの視点とは異なる分布から新規画像が描かれた場合、例えば新規画像の視点がトレーニングデータ分布のサポート外にある場合、分布外と称することができる。
図804は、分布内視点を分布外視点と対比させる図を示す。
【0139】
本明細書では、システムおよびコンピュータプログラムコンポーネントに関して、「構成された」という用語を使用している。1つまたは複数のコンピュータからなるシステムが特定の動作またはアクションを実施するように構成されるとは、動作の際にシステムにその動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを、システムがその上にインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実施するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると装置にその動作またはアクションを実施させる命令を含むことを意味する。
【0140】
本明細書において説明した本主題の実施形態および機能的動作は、デジタル電子回路として、有形に具現化されたコンピュータソフトウェアもしくはファームウェアとして、本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアとして、またはそれらのうちの1つもしくは複数のものの組合せとして、実装することができる。本明細書において説明した本主題の実施形態は、データ処理装置によって実行するために、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化された、1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。コンピュータ記憶媒体は、マシン可読記憶デバイス、マシン可読記憶基板、ランダムもしくはシリアルアクセスのメモリデバイス、またはそれらのうちの1つもしくは複数のものの組合せとすることができる。その代わりにまたはそれに加えて、プログラム命令は、情報をデータ処理装置によって実行する目的で適切なレシーバ装置に送信できるように符号化するために生成される、人工的に生成された伝搬信号、例えばマシンにより生成された電気信号、光信号、または電磁信号上に、符号化することができる。
【0141】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)とすることもでき、またはそれをさらに含むこともできる。装置はオプションで、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数のものの組合せを構成するコードも含むことができる。
【0142】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるかまたは説明されることのあるコンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態でデプロイすることができる。プログラムは、その必要はないが、ファイルシステム内のファイルに対応してよい。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分、例えばマークアップ言語ドキュメント内に格納された1つもしくは複数のスクリプト内に、当該のプログラムに専用の単一のファイル内に、または複数の連係されたファイル、例えばコードの1つもしくは複数のモジュール、サブプログラム、もしくは一部分を格納したファイル内に、格納することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように、デプロイすることができる。
【0143】
本明細書では、「エンジン」という用語が、1つまたは複数の特定の機能を実施するようにプログラムされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広義に使用される。一般に、エンジンは、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上にインストールされた1つまたは複数のソフトウェアモジュールまたはソフトウェアコンポーネントとして実装される。いくつかの場合には、1つまたは複数のコンピュータが、特定のエンジンに専用であり、他の場合には、複数のエンジンが、同じ1つまたは複数のコンピュータ上にインストールされ、その上で実行されていてよい。
【0144】
本明細書において説明したプロセスおよび論理フローは、入力データに作用し出力を生成することによって機能を実施するための1つまたは複数のコンピュータプログラムを実行する、1つまたは複数のプログラマブルコンピュータによって実施することができる。プロセスおよび論理フローは、専用論理回路、例えばFPGAもしくはASICによって、または専用論理回路と1つもしくは複数のプログラムされたコンピュータとの組合せによって、実施することもできる。
【0145】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは専用のマイクロプロセッサ、またはその両方、あるいは他の任意の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読出し専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を実施または実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完することもでき、または専用論理回路に組み込むこともできる。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそこからデータを受け取り、またはそこにデータを転送するように動作可能に結合されるか、あるいはその両方である。しかし、コンピュータは、そのようなデバイスを有している必要はない。さらに、コンピュータは、別のデバイス、例えば、ほんの数例を挙げると、モバイル電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオプレーヤもしくはモバイルビデオプレーヤ、ゲーム機、グローバポジショニングシステム(GPS)レシーバ、またはポータブル記憶デバイス、例えばユニバーサルシリアルバス(USB)フラッシュドライブに埋め込むことができる。
【0146】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体としては、例として半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、例えば内蔵ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性のメモリ、媒体、およびメモリデバイスがある。
【0147】
ユーザとの対話を可能にするために、本明細書において説明した本主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力することのできるキーボードおよびポインティングデバイス、例えばマウスまたはトラックボールとを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を可能にすることもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受け取ることができる。それに加えて、コンピュータはユーザと、ユーザによって使用されているデバイスにドキュメントを送出し、そこからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザに、そのウェブブラウザから受信した要求に応答してウェブページを送出することによって、対話することもできる。また、コンピュータはユーザと、メッセージングアプリケーションを実行しているパーソナルデバイス、例えばスマートフォンにテキストメッセージまたは他の形態のメッセージを送出し、ユーザから返信として応答メッセージを受信することによって、対話することもできる。
【0148】
機械学習モデルを実装するためのデータ処理装置は、例えば、機械学習のトレーニングまたはプロダクション、すなわち推論の作業負荷のうちの共通の計算集約的部分を処理するための、専用ハードウェアアクセラレータユニットを含むこともできる。
【0149】
機械学習モデルは、機械学習フレームワーク、例えばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して、実装およびデプロイすることができる。
【0150】
本明細書において説明した本主題の実施形態は、例えばデータサーバとしてのバックエンドコンポーネントを含むか、またはミドルウェアコンポーネント、例えばアプリケーションサーバを含むか、またはフロントエンドコンポーネント、例えば本明細書において説明した本主題の一実装形態とユーザがそれを通じて対話することのできるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、あるいは1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステム内に、実装することができる。システムのコンポーネント同士は、任意の形態または媒体のデジタルデータ通信、例えば通信ネットワークによって、相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、例えばインターネットがある。
【0151】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いに遠隔にあり、典型的には通信ネットワークを通じて対話する。クライアントおよびサーバの関係は、それぞれに対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、データ、例えばHTMLページをユーザデバイスに、例えばクライアントとしての役割を果たすそのデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受け取ることを目的として、送信する。ユーザデバイスにおいて生成されたデータ、例えばユーザ対話の結果は、デバイスからサーバにおいて受信され得る。
【0152】
本明細書は、実装形態の多くの具体的詳細を含んでいるが、これらは、任意の発明の範囲または特許請求され得るものの範囲に対する限定と解釈するのではなく、特定の発明の特定の実施形態に固有であり得る特徴についての説明と解釈すべきである。本明細書において別々の実施形態の文脈の中で説明される、ある特定の特徴は、単一の実施形態において組み合わせて実装することもできる。反対に、単一の実施形態の文脈の中で説明されるさまざまな特徴は、複数の実施形態において別々に、または任意の適切な部分組合せで、実装することもできる。さらに、特徴については上で、ある特定の組合せで作用するものとして説明されていることがあり、さらにはそのようなものとして最初に特許請求されていることもあるが、特許請求された組合せからの1つまたは複数の特徴を、場合によっては、その組合せから削除することができ、特許請求された組合せは、部分組合せまたは部分組合せの変形を対象としてよい。
【0153】
同様に、動作については、特定の順序で図面中に描かれ、特許請求の範囲において記載されているが、これは、望ましい結果を達成するために、そのような動作が、示された特定の順序で、もしくは順番に実施されること、または示された全ての動作が実施されることを必要とするものと理解すべきではない。ある特定の状況下では、マルチタスキングおよび並列処理が、有利となることがある。さらに、上で説明した実施形態におけるさまざまなシステムモジュールおよびコンポーネントの分離は、全ての実施形態においてそのような分離を必要とするものと理解すべきではなく、説明したプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化できることを理解されたい。
【0154】
以上、本主題の特定の実施形態について説明してきた。他の実施形態が、添付の特許請求の範囲に記載の範囲に含まれる。例えば、特許請求の範囲において記載されたアクションは、異なる順序で実施し、それでもなお望ましい結果を達成することができる。一例として、添付の図中に描いたプロセスは、望ましい結果を達成するために、示された特定の順序、または順番を必ずしも必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が、有利となることがある。
【符号の説明】
【0155】
100 画像レンダリングシステム、エンコーディングニューラルネットワーク
102 観測結果
104 条件付け用潜在変数
106 空間ロケーション
107 観測方向
108 新規画像
110 エンコーディングニューラルネットワーク、エンコーダニューラルネットワーク
120 シーン表現ニューラルネットワーク
125 シーン、シーン表現ニューラルネットワーク
126a カメラロケーション
126b カメラロケーション
126c カメラロケーション
126d 新規カメラロケーション、新規ロケーション
210 レイ、観測方向
215 新規画像
216 新規カメラロケーション
220 新規画像
225 カメラロケーション
230 空間ロケーション
240 シーン表現ニューラルネットワーク
250 シーン
260 3次元ラディアンスフィールド、幾何学的モデル
300 画像レンダリングシステム
302 観測結果
304 潜在変数
310 エンコーディングニューラルネットワーク
320 シーン表現ニューラルネットワーク、画像レンダリングニューラルネットワーク
400 シーン表現ニューラルネットワーク
500 プロセス
600 プロセス
702 グラフ
704 グラフ
706 グラフ
804 図
【手続補正書】
【提出日】2023-10-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のデータ処理装置によって実施される、新規カメラロケーションにおけるカメラの視点からシーンを描いた新規画像をレンダリングするための方法であって、
前記シーンを特徴付ける複数の観測結果を受信するステップであって、各観測結果が、(i)前記シーンの画像、および(ii)前記シーンの前記画像を捕捉したカメラのロケーションを識別するデータを備える、ステップと、
前記シーンを特徴付ける前記複数の観測結果から、前記シーンを表現する潜在変数を生成するステップと、
前記シーンを表現する前記潜在変数でシーン表現ニューラルネットワークを条件付けるステップであって、前記シーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークが、3次元(3D)ラディアンスフィールドとしての前記シーンの幾何学的モデルを定め、
前記シーン内の空間ロケーションの表現物、および観測方向の表現物を受け取ること、ならびに
前記シーン内の前記空間ロケーションの前記表現物、前記観測方向の前記表現物、および前記シーンを表現する前記潜在変数を処理して、前記シーン内の前記空間ロケーションにおいて前記観測方向に放出されるラディアンスを定める出力を生成すること
を行うように、構成されている、ステップと、
前記新規カメラロケーションにおける前記カメラの前記視点から前記シーンを描いた前記新規画像を、前記シーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用して、3Dラディアンスフィールドとしての前記シーンの前記幾何学的モデルからのラディアンス値を前記新規カメラロケーションにおける前記カメラの画像平面上に投影することによって、レンダリングするステップと
を含む、方法。
【請求項2】
前記シーンを特徴付ける前記複数の観測結果から、前記シーンを表現する前記潜在変数を生成するステップが、
前記シーンを特徴付ける前記複数の観測結果から、潜在変数の空間にわたる確率分布のパラメータを生成するステップと、
前記潜在変数の空間から、前記潜在変数の空間にわたる前記確率分布に従って、前記シーンを表現する前記潜在変数をサンプリングするステップと
を含む、請求項1に記載の方法。
【請求項3】
前記シーンを特徴付ける前記複数の観測結果から、前記潜在変数の空間にわたる前記確率分布のパラメータを生成するステップが、
各観測結果のそれぞれの表現物を生成するステップと、
各観測結果の前記それぞれの表現物を、エンコーディングニューラルネットワークを使用して処理して、各観測結果の対応する埋め込みを生成するステップと、
前記複数の観測結果の前記埋め込みから、前記潜在変数の空間にわたる前記確率分布の前記パラメータを生成するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記複数の観測結果の前記埋め込みから、前記潜在変数の空間にわたる前記確率分布の前記パラメータを生成するステップが、
前記複数の観測結果の前記埋め込みを平均するステップであって、前記潜在変数の空間にわたる前記確率分布の前記パラメータが、前記複数の観測結果の前記埋め込みの前記平均に基づく、ステップ
を含む、請求項3に記載の方法。
【請求項5】
前記複数の観測結果の前記埋め込みから、前記潜在変数の空間にわたる前記確率分布の前記パラメータを生成するステップが、
前記潜在変数の空間にわたる現在の確率分布の現在のパラメータを初期化するステップと、
一連の時間ステップにおける各時間ステップについて、
前記潜在変数の空間から、前記潜在変数の空間にわたる前記現在の確率分布に従って、現在の潜在変数をサンプリングするステップと、
前記現在の潜在変数で前記シーン表現ニューラルネットワークを条件付けるステップと、
ターゲットカメラロケーションにおけるカメラの視点から前記シーンを描いた画像を、前記現在の潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用してレンダリングするステップと、
前記潜在変数の空間にわたる前記現在の確率分布の前記現在のパラメータに関する、目的関数の勾配を決定するステップであって、前記目的関数が、(i)前記ターゲットカメラロケーションにおける前記カメラの前記視点から前記シーンを描いた、前記レンダリングされた画像、および(ii)前記ターゲットカメラロケーションにおける前記カメラから捕捉された前記シーンのターゲット画像に応じて決まる、ステップと、
前記潜在変数の空間にわたる前記現在の確率分布の前記現在のパラメータを、(i)前記目的関数の前記勾配、および(ii)前記複数の観測結果の前記埋め込みを使用して更新するステップと
を含む、請求項3に記載の方法。
【請求項6】
前記シーンを表現する前記潜在変数が、複数の潜在部分変数を備える、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記シーン表現ニューラルネットワークが、一連の1つまたは複数の更新ブロックを備え、各更新ブロックが、
前記シーン内の前記空間ロケーションと前記観測方向との現在の共同埋め込みを受け取ること、
前記シーン内の前記空間ロケーションと前記観測方向との前記現在の共同埋め込みを、前記潜在変数の前記複数の潜在部分変数のうちの1つまたは複数にわたるアテンションを使用して更新すること
を行うように、構成されている、請求項6に記載の方法。
【請求項8】
前記アテンションが、マルチヘッドクエリ-キー-バリューアテンションである、請求項7に記載の方法。
【請求項9】
前記シーン内の前記空間ロケーションの前記表現物、前記観測方向の前記表現物、および前記シーンを表現する前記潜在変数を処理して、前記シーン内の前記空間ロケーションにおいて前記観測方向に放出される前記ラディアンスを定める出力を生成するステップが、
前記シーン内の前記空間ロケーションの前記表現物および前記観測方向の前記表現物から、前記シーン内の前記空間ロケーションと前記観測方向との共同埋め込みを生成するステップと、
前記共同埋め込みを、前記一連の1つまたは複数の更新ブロックにおける各更新ブロックを使用して更新するステップと、
前記シーン内の前記空間ロケーションにおいて前記観測方向に放出される前記ラディアンスを定める前記出力を、前記一連の更新ブロックにおける最終更新ブロックによって生成された、前記更新された共同埋め込みから生成するステップと
を含む、請求項7または8に記載の方法。
【請求項10】
各潜在部分変数が複数のチャネルを備え、各更新ブロックにそれぞれの潜在部分変数が割り当てられており、各更新ブロックについて、前記現在の共同埋め込みを、前記潜在変数の前記複数の潜在部分変数のうちの1つまたは複数にわたるアテンションを使用して更新するステップが、
前記現在の共同埋め込みを、前記更新ブロックに割り当てられた前記潜在部分変数のみにわたるアテンションを使用して更新するステップ
を含む、請求項7~9のいずれか一項に記載の方法。
【請求項11】
前記新規画像をレンダリングするステップが、前記新規画像の各画素について、
前記画素に対応する、前記新規カメラロケーションにおける前記カメラの前記画像平面から前記シーン内に投影されるレイを識別するステップと、
前記レイ上の複数の空間ロケーションのそれぞれについて、前記レイ上の前記空間ロケーションにおいて前記レイの方向に放出されるラディアンスを、前記シーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用して決定するステップと、
前記レイ上の前記複数の空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンスに基づいて、前記新規画像内の前記画素の色をレンダリングするステップと
を含む、請求項1~10のいずれか一項に記載の方法。
【請求項12】
前記レイ上の前記複数の空間ロケーションのそれぞれについて、前記レイが前記空間ロケーションにおいて止まることになる可能性を特徴付ける、前記空間ロケーションにおける前記シーンの体積密度を決定するステップと、
前記レイ上の前記複数の空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンスと、前記レイ上の前記複数の空間ロケーションにおける前記体積密度の両方に基づいて、前記新規画像内の前記画素の前記色をレンダリングするステップと
をさらに含む、請求項11に記載の方法。
【請求項13】
前記レイ上の前記複数の空間ロケーションのそれぞれについて、前記空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンス、および前記空間ロケーションにおける前記体積密度を決定するステップが、
前記レイ上の前記空間ロケーションの表現物および前記レイの前記方向の表現物を、前記シーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークに提供して、前記空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンスと前記空間ロケーションにおける前記体積密度とを定める出力を生成するステップ
を含む、請求項12に記載の方法。
【請求項14】
前記レイ上の前記複数の空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンスと、前記レイ上の前記複数の空間ロケーションにおける前記体積密度の両方に基づいて、前記新規画像内の前記画素の前記色をレンダリングするステップが、
前記レイ上の前記複数の空間ロケーションにおいて前記レイの前記方向に放出される前記ラディアンス、および前記レイ上の前記複数の空間ロケーションにおける前記体積密度を累積するステップ
を含む、請求項12または13に記載の方法。
【請求項15】
前記シーン表現ニューラルネットワークが、複数のニューラルネットワークパラメータを有し、前記シーン表現ニューラルネットワークが、前記シーンの前記新規画像をレンダリングするために使用される前に、前記ニューラルネットワークパラメータの初期値から前記ニューラルネットワークパラメータのトレーニング後の値を決定するためにトレーニングされ、前記シーン表現ニューラルネットワークをトレーニングするステップが、複数の他のシーンのそれぞれについて、
前記他のシーンを表現する潜在変数で前記シーン表現ニューラルネットワークを条件付けるステップと、
前記他のシーン内のあるロケーションにおけるカメラの視点から前記他のシーンをそれぞれが描いた1つまたは複数の画像を、前記他のシーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用してレンダリングするステップと、
前記シーン表現ニューラルネットワークの前記ニューラルネットワークパラメータの現在の値を、前記他のシーンを表現する前記潜在変数で条件付けた前記シーン表現ニューラルネットワークを使用してレンダリングされた前記他のシーンの前記画像に応じて決まる目的関数の勾配を使用して更新するステップと
を含む、請求項1から14のいずれか一項に記載の方法。
【請求項16】
1つまたは複数
のコンピュータ記憶媒体であって、命令を記憶し、前記命令が、1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに、請求項1~15のいずれか一項に記載
の方法を実施させる、1つまたは複数
のコンピュータ記憶媒体。
【請求項17】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された1つまたは複数の記憶デバイスであって、命令を記憶し、前記命令が、前記1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに、請求項1~15のいずれか一項に記載
の方法を実施させる、1つまたは複数の記憶デバイスと
を備える、システム。
【国際調査報告】