[概要]Xフィールド:陰的ニューラルビュー、光、および時間画像の補間
Interpolation
Time 3
Time 1
Time 0
このレポートでは、この素晴らしい論文を簡単に検証し、時間、光を補間し、スパースデータであるXフィールドを使用して2D画像をシームレスに表示する新しい方法を提案します。このXフィールドは、時間、光、またはビュー座標を2D画像にマッピングするニューラルネットワークを学習することによって表されます。
論文| | GitHub | コラボノートブック
概要
新しいセンサーは、さまざまなポイント(ビデオ)、角度(ライトフィールド)、またはさまざまな照明下(反射フィールド)からシーンの画像をキャプチャします。この多様な情報を使用して、バーチャルリアリティ(VR)のエクスペリエンスを向上させることができます。この情報を使用して、新しいビュー、照明などを補間して、あるシーンから別のシーンへのシームレスな遷移を生成できます。
ただし、シームレスな補間には高密度のサンプリングが必要であり、ストレージ、キャプチャ、および処理の要件が過剰になります。スパースサンプリングは代替手段ですが、時間、光、およびビューにわたる正確な補間が必要です。これは明らかです。
Xフィールドは、さまざまなビュー、時間、または照明条件、つまり、ビデオ、ライトフィールド、反射フィールド、またはそれらの組み合わせで撮影された2D画像のセットです。著者らは、この高次元のXフィールドを表すことができるニューラルネットワークベースのアーキテクチャを提案しました。
論文の核心は、上記の図1を使用して理解できます。さまざまな条件と座標でのまばらな画像観測(この場合は時間)から、空間、時間、または光が提供されると、ニューラルネットワーク(マッピング)がトレーニングされます。入力として座標、出力として観測されたサンプル画像を生成します。観測されていない座標の場合、出力は忠実に補間されます(GIFとして表示)。
著者による公式のYouTubeビデオを参照してください。
提案手法の概要
提案されたアプローチは、2つの重要な観察によって動機付けられています。
• 深い表現は補間に役立ちます:ニューラルネットワークを使用して情報を表現すると、より良い補間につながります。
• これは、すべてのユニットが微分可能である限り当てはまります。上記の観察は、すべてのユニットが微分可能である限り、どのアーキテクチャにも当てはまります。
Xフィールドは、非線形関数として表されます。
Loutθ(x)∈χ→R3×npL_{out}^θ (x) \in \chi \to \mathbb{R}^{3 \times n_p}
トレーニング可能なパラメータθを使用して、nd‐次元のXフィールド座標x∈χ⊂Rndからnpピクセルの2D RGB画像にマッピングします。Xフィールド(χ)の次元は、キャプチャモダリティ(ビデオ補間の1Dなど)に依存します。
Xフィールドを高次元の連続空間と見なします。入力画像は有限で、かなりまばらです。このまばらに観測されたXフィールド座標は、既知の座標yで画像Lin(y)がキャプチャされたY⊂χとして表すことができます。∣Y∣はスパース、つまり3×3、2×3などのように小さいです。
たとえば、3×5のライトフィールド画像の配列が与えられた場合、入力はs∈0,1,2およびt∈0,1,2,3,4の2D座標(s、t)です。テスト時間中、sの場合は0〜2、tの場合は0〜4の任意の連続値を指定できます。学習したニューラルネットワークアーキテクチャは、指定された範囲で忠実に補間します。
以下に示す画像は、Xフィールド(χ)に属するスパース入力(Y)です。この場合、キャプチャモダリティは光(照明)補間に適しています。ホワイトエンジェルの影を観察してください。
要約すると、アーキテクチャLoutは、観測されていないベクトルxのもっともらしい画像Lout(x)も取得するために、ベクトルyをキャプチャされた画像Lin(y)にマッピングするようにトレーニングされています。これは、上記の最初の重要な観察結果と一致しています。
テスト時間中、補間が期待されますが、Yによって制限されます。したがって、トレーニングでは、YにないXフィールド座標xが評価されることはありません。これは、その座標での$L_{in}(x)の画像がわからないためです。
建築デザイン
アーキテクチャ設計は、論文の斬新な部分です。Loutは、3つの主要なアイデアを使用してモデル化されています。
- • 外観は、観察された画像の外観の組み合わせです(Lin(y))。
- • 外観は、シェーディングとアルベドの産物であると想定されています。 • xで観測されていないシェーディングとアルベドは、yで観測されたシェーディングとアルベドのワープバージョンと見なされます。
これらの仮定が成り立つ必要はありませんが、その場合、ニューラルネットワークは座標と画像の関係をキャプチャするのにより困難な時間を費やします。
提案されたアーキテクチャは、次の4つのステップで実装されます。
• シェーディングとアルベドの分離 シェーディング とは、暗さのレベルを変化させることによる、3Dモデル(3Dコンピューターグラフィックスの分野内)またはイラスト(2Dコンピューターグラフィックスの領域内)における奥行き知覚の描写を指します. アルベドは、表面から反射して反射する入射光の割合です。言い換えれば、それはオブジェクトの全体的な明るさです。
• ワープ画像の重み付けされた組み合わせとしての補間画像。 • ニューラルネットワークを使用して「フロー」を表現します。 • 不整合の解決。
では、1つずつ見ていきましょう。
シェーディングとアルベドを切り離す(照明解除)
照明解除は、外観をシェーディングの組み合わせに分割します。シェーディングは、Xフィールド座標の変更に応じて一方向に移動します。
観測されたすべての画像は次のように分解されます。
Lin(y)=E(y)⊙A(y)L_{in}(y) = E(y) \odot A(y)
Eはシェーディング画像、Aはアルベド画像、⊙は点ごとの積です。
テスト時間中、シェーディングとアルベドの両方が独立して補間され、乗算によって観測されていない位置xで新しい放射輝度に再結合されます。出力は数学的に次のように与えられます。
Lout(x)=int(A(Lin(y)),y→x)⊙int(E(Lin(y)),y→x)L_{out}(x) = int(A(L_{in}(y)), y \to x) \odot int(E(L_{in}(y)), y \to x)
intは、簡単に説明する演算子です。
補間とワーピング
ワーピングは、観測された画像を観測されていない画像に変形します。これは、観測されたXフィールド座標と観測されていないXフィールド座標を条件とします。
warp(I,y→x)∈I×χ×Y→Iwarp(I, y \to x) \in I \times \chi \times Y \to I
バイリニアフィルタリングを備えた空間変換器(STN)を使用して、特定の「フロー」マップに従って別の画像からピクセルを読み取ることにより、ある画像のピクセルを計算します。
補間は、観測されたすべての画像を歪め、個々の結果をマージします。ワープとマージはどちらも、シェーディング(EE)とアルベド(AA)で完全に同じように実行されます。この操作はI(上記でも使用)で表され、で与えられます。
int(I,y→x)=∑y∈Y(cons(y→x)⊙warp(I(y),y→x))int(I, y \to x) = \sum_{y \in Y} (cons(y \to x) \odot warp(I(y), y \to x))
重要な問題は、xxの画像がyの画像から再構成されるときに、位置「p」のピクセルをどの位置「q」から読み取る必要があるかということです。
答えの前半は、Xフィールド座標からピクセル位置へのマッピングのヤコビアンを使用することです。ヤコビアンは、たとえば、時間が変更された場合に、特定のビューとラ イトでピクセルがどのように移動するかをキャプチャします。数学的には、与えられたピクセル「p」に対して、それは次のように与えられる偏導関数です。
flowδ(x)[p]=δp(x)δx∈X→R2×ndflow_{\delta}(x)[p] = \frac{\delta p(x)}{\delta x} \in X \to \mathbb{R}^{2 \times n_d}
ここで[p][p]は離散ピクセル配列にインデックスを付けています。上記の式は、Xフィールド座標の微小な変化に対してピクセルがどのように移動するかを指定します。ヤコビ行列は、すべてのndn_d‐次元Xフィールド座標に関する2つのピクセル座標のすべての偏導関数を保持します。ただし、これは有限値「q」ではありません。「q」を見つけるために、Xフィールド座標y→xの変化は、有限差分を使用して2Dピクセルモーションに投影されます。
flowΔ(y→x)[p]=p+Δ(y→x)flowδ(x)[p]=qflow_{\Delta}(y \to x)[p] = p + \Delta (y \to x)flow_{\delta}(x)[p] = q
この方程式は、Xフィールド座標の有限の変化に対して有限のピクセル運動を与えます。
フロー
フロー計算への入力はXフィールド座標xであり、出力はヤコビアンです。これは、畳み込みニューラルネットワーク(CNN)を使用して実装されます。アーキテクチャは、座標xを取り込んだ完全に接続されたレイヤーから始ま���、128チャネルの2D画像に再形成されます。この段階でCord-Convレイヤーが追加されます。これに続いて、チャネル数をnd出力チャネルに減らしながら出力解像度に到達するための複数のアップサンプリングが行われます。
一貫性
観測されていないXフィールド座標にワープされたすべての観測された画像を組み合わせるために、各画像ピクセルはその流れの一貫性によって重み付けされます。ピクセル「q」が「p」の画像に寄与するためには、「q」のフローが「p」にマップバックする必要があります。yからxを座標にワープしたときの1ピクセル「p」の一貫性は、重み関数の1の分割です。
cons(y→x)[p]=w(y→x)[p](∑y′∈Yw(y′→x)[p])−1cons(y \to x)[p] = w(y \to x)[p](\sum_{y' \in Y} w(y' \to x)[p])^{-1}
重みwは、ピクセル位置「p」のデルタの1ノルムと、「p」が次のようにワープされた位置「q」での逆流の関数を滑らかに減少させます。
w(y→x)[p]=exp(−σ∣p−flowΔ(x→y)[q])∣1)w(y \to x)[p] = exp(-σ|p - flow_{\Delta}(x \to y)[q])|_1)
ここで σ=10σ = 10は帯域幅パラメータです。
トレーニング
結果を再現するには、ColabNotebookをチェックしてください\ →\rightarrow
公式のGitHubリポジトリはこちらから入手できます。私は同じものでWeightsとBiasesをインストルメントしました、そしてあなたはここでリポジトリを見つけることができます。
リンクされたColab Notebookを使用すると、利用可能なデータセットで遊ぶことができます。選択したデータセットを選択し、適切なPythonコマンドを選択して、そのシーンのモデルをトレーニングします。データセットによっては、時��がかかる場合があります。
さまざまなモデルの平均L1損失は、以下のメディアパネルに示されています。