GIRAFFE:シーンを構成的生成ニューラル特徴フィールドとして表現

記事:http://arxiv.org/abs/2011.12100(CVPR 2021 (oral))
コード:https://github.com/giraffe-fsharp/Giraffe
ライター:Michael Niemeyer,Andreas Geiger

1 概要

深い生成モデルにより、高解像度でリアルな画像合成が可能になります。しかし、多くのアプリケーションにとって、それだけでは十分ではありません。コンテンツの作成も管理しやすくする必要があります。GRAF は、形状コーディングと外観コーディングを追加して、シーン内のオブジェクトの編集を実現します。GiRAFFE の重要な前提は、合成 3D シーン表現を生成モデルに組み込むことで、画像合成をより制御しやすくできるということです。**シーンを生成神経特徴フィールドとして表現すると、1 つまたは複数のオブジェクト、および個々のオブジェクトの形状や外観を背景から分離できると同時に、追加の監督なしで非構造化およびポーズ化されていない画像から学習できるようになります。 。このシーン表現をニューラル レンダリング パイプラインと組み合わせることで、高速でリアルな画像合成モデルが得られます。実験では、GIRAFFE が個々のオブジェクトを分解し、シーン内でオブジェクトを移動および回転したり、カメラのポーズを変更したりできることが実証されています。

2 モデルの枠組み

2.1 概要

画像.png
まず、ガウス分布上のさまざまなオブジェクトと背景の形状と外観情報をサンプリングし、さまざまなモデル上でさまざまなターゲット車両と背景を生成し、ターゲットの姿勢情報を介してターゲットの姿勢を変換 (アフィン変換) します。カメラの姿勢とボリューム レンダリングに変換し、暗黙的な 3D シーンを生成し、それを 2D CNN ネットワークを通じて 2D 画像にデコードします。

2.2 2D ベースの手法との比較

画像.png
上の図から、2D ベースの方法で球を移動すると 2 つの球の形状が変化し、GIRAFFE がオブジェクトの移動操作をうまく完了できることが明確にわかります。同時に、GIRAFFE は、円形の移動やシーンへのオブジェクトの追加など、より複雑なタスクも実行できます。

2.3 全体的な枠組み

画像.png
まず、単一のオブジェクトをニューラル特徴フィールドとしてモデル化します。次に、複数の異なるオブジェクトの特徴フィールドの追加プロパティを使用してシーンを合成します。レンダリング部分については、GIRAFFE がボリューム レンダリングとニューラル レンダリングを効果的に組み合わせる方法を研究しています。このうちオレンジ色は学習可能な操作、青色は学習不可能な操作を示します。C は合成演算子 (組み合わせ演算子) の
入力です。

  • カメラポーズ (外部パラメータ行列ξ 〜 p ξ \xi \sim p_{\xi}バツpバツp ξ p_{\xi}pバツそしてp T p_TpTは、データセットのカメラの標高と、効果的なオブジェクト変換の一様分布に依存します。この選択の根拠は、現実世界のほとんどのシナリオでは、オブジェクトは任意に回転しますが、重力によって傾くことはなく、 と比較して、カメラはその標高を自由に変更できるためです。位置を変えずに角度を付ける);
  • 形状と外観コード ( zs , za 〜 N ( 0 , 1 ) z_s,z_a \sim N(0,1)zszN ( 0 ,1 )標準正規分布に従う)
  • アフィン変換T i T_iT私は( T = { s , t , R } T = \{s, t, R\}T={ s R }s 、 ts、t_t はスケーリングおよび変換パラメータ、RRRは回転行列であり、この表現を使用して、オブジェクト内の点がシーン空間に変換されます)

アルゴリズムの流れ:
1) カメラの姿勢に応じて光を生成し、光をサンプリングし、方向dj d_jを取得します。djおよび位置xi 、 j x_{i,j}バツ j、それぞれ高周波エンコードを実行して、対応する表現を取得します; 2) 次に、 NN
と結合します。N 個の形状コードと外観コード、およびT i T_iT私は一緒に( NNNはシーン内のすべてのオブジェクトの数で、通常はN − 1 N-1N単一オブジェクトの場合は1 ( NN 番目)Nは背景です)、生成されたさまざまなニューラル特徴フィールドに送信され、元の GRAF によって出力された 3 次元 rgb カラー値は、出力時により一般的な特徴ffに置き換えられます。f,到達对应的( σ i , ji , fi , ji ) (\sigma^i_{i,j},f^i_{i,j})( pj私はfj私は)を取得し、組み合わせ演算子を使用して特定の点の全体の密度と特徴量を取得します (密度は密度の合計であり、特徴は使用された密度の加重平均です)画像.png
3) 特定のカメラポーズξ \xiξ,令{ xj } j = 1 N s \{x_j\}^{N_s}_{j=1}{ ×j}j = 1Nsカメラ光線ddに沿った指定されたピクセルです。dのサンプリング ポイントの場合CCCの出力密度値と場の固有ベクトル( σ i , fi ) (\sigma_i, f_i)( p私はf私は)はピクセル f_j の最終的な特徴ベクトル fj にマッピングされます。fj画像.png、具体的な計算式は次のとおりです。
画像.png
ここで、 τ j τ_jtjは透過率、α j α_jあるjxj x_jですバツj、およびδ j = ∣ ∣ xj + 1 − xj ∣ ∣ 2 δ_j = ||x_{j+1} − x_j ||^2dj=∣∣ xj + 1バツj2は隣接するサンプリング点間の距離です。特徴画像全体は、各ピクセルの π volπ_{vol}円周率v o l獲得。
4) fj f_jを取得するfjその後、ニューラル レンダリング オペレーターπ θ neural \pi_{\theta}^{neural}に送信されます。円周率ニューラル_ _ _ _ _( 画像.png)、重みθ \thetaに応じてθ は特徴画像を最終的な合成画像にマッピングし、π θ neural \pi_{\theta}^{neural}円周率ニューラル_ _ _ _ _リーキー ReLU 活性化関数を備えた 2D 畳み込みニューラル ネットワーク (CNN) としてパラメーター化されます。
画像.png
5) 最後に、レンダリングされたイメージI ^ \hat{I}^とII は実際の画像からサンプリングI は識別器D ϕ D_{\phi}Dϕネットワーク全体をトレーニングして最適化します。
数式:
アルゴリズム生成部全体の処理は次のように表されます。
画像.png
ここで、NNNはシーン内のすべてのオブジェクトの数、N s N_sNsは各光線に沿ったサンプリング ポイントの数dk d_kdk番目ですkピクセルのレイxjk x_{jk}バツjkk番目ですkピクセル/レイjj 番目j 個のサンプリング ポイント。
識別子D ϕ D_\phiDϕ不飽和 GAN 損失関数が使用されます。
画像.png

3つの実験

1. シーンの分離。上から順に、個別の背景、オブジェクト オブジェクト、オブジェクト カラーのアルファ値、最終的な合成イメージです。 2. オブジェクトを回転および移動し、オブジェクトの属性を変更し、循環的に移動します
画像.png
。オブジェクト
画像.png
3. 学習データを超えるオブジェクトの追加、被写界深度の異なる画像の生成、カメラ位置の水平移動、他の手法との比較などの一般化
画像.png

おすすめ

転載: blog.csdn.net/KeepLearning1/article/details/130253508