271 Views
March 27, 20
スライド概要
2020/03/27
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Papers] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis Kento Doi, Matsuo Lab http://deeplearning.jp/ 1
概要: 何がすごいか?? • 複数の視点と画像のペアからMulti layer perceptron (MLP) を学習することにより、新規視点⽣ 成のタスクで⾮常に素晴らしい結果を達成 • 新規視点⽣成とは … あるシーンを観測する視点を与えたときに、その視点に対応する画像を⽣成する こと • まずはproject pageからダウンロードした結果を⾒てください • http://www.matthewtancik.com/nerf B. Midenhall et al. “NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis”, arxiv prepring, 2020.
書誌情報、選定理由など • UC Berkeley, Google Research, UC San Diegoの研究者が著者 • equal contributionが3⼈!! • 論⽂のフォーマットからECCV2020への投稿と思われる • 選定理由 • • • • 結果の動画を⾒て、⾮常に⾼精細な画像が⽣成できていると驚いた 画像⽣成形の論⽂情報はroadrunnerさんが早い (Twitter: @ak92501) ⽣成結果のインパクトが⼤きく各所で話題になっていた 軽く読んでみてアイデアが (⾃分にとって) 新しく⾯⽩かったため
概要: どうやって実現している? • MLPでNeural Radiance Field (NeRF) を学習 • Neural Radiance Fieldとは • 三次元空間のある点の位置と視線⽅向 (⾓度) を与えると、その点の密 度 (density) と⾊が定まるNNにより表現された「場」 • 場とは … 時空の各点に関する物理量で、座標と時間を指定すると⼀つの 物理量が定まる。数学的には空間座標が独⽴変数となる関数で表現可能* • 密度 (density) とは … 光をどれくらい透過するかを表すパラメーター (densityが⾼いほど光を通しにくいということだと思います) • カメラレイから定まる空間の各点の位置と視線の⽅向をクエリにして、 古典的なレンダリング⼿法 (volume rendering) を⽤いて視点に対応す る画像をレンダリングできる • volume renderingが微分可能なので画像を使ってend-to-endで学習できる • 複数の観測 (画像と視点のペア) でNeRFを訓練する⽅法を提案 *https://www.wikiwand.com/ja/%E5%A0%B4 http://www.matthewtancik.com/nerf
レンダリングの⼿順 1. カメラレイをシーンの中を進ませ、三次元点をサンプル • カメラに⼊ってくる光を逆向きに進ませるイメージ • その光が通る点を考慮して画像をレンダリングする 2. サンプルした点と対応する視線の⽅向をNNに⼊⼒し各点の⾊と密度を⽣成 3. 古典的なボリュームレンダリングの技術で⾊と密度から画像を合成 • カメラレイを逆向きに辿り密度を考慮しながら⾊を⾜し合わせていくイメージ B. Midenhall et al. “NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis”, arxiv prepring, 2020.
技術的な貢献 • 複雑な幾何形状を持つシーンをMLPでパラメタライズしたneural radiance field で表現したこと • 古典的なボリュームレンダリングの⼿法に基づく微分可能なレンダリング⼿法の 提案 • MLPのキャパシティを考慮した三次元点の階層的なサンプリング⼿法も提案 • 複雑な形状を持つシーンを表現するために5D (三次元位置、視線⽅向) を⾼次元 空間に埋め込むテクニックの提案 Ø新規視点合成の既存⼿法と⽐較しstate-of-the-artの結果を得た Ø次のスライドから詳細について説明します
NeRFによるシーン表現の獲得 • シーンを5Dベクトル (三次元位置、視線⽅向) を⼊⼒として、とvolume density を出⼒する関数として表現 • • • • 三次元位置: 視線⽅向: ⾊: volume density: x = (x, y, z) (θ, φ) c = (r, g, b) σ • volume densityは、xのみにより定まる値 • ⾊はxと (θ, φ) により定まる値 • 上の制約からMLPは2つに分かれる 1. 2. xを⼊⼒としσと256次元のベクトルを出⼒ 1の出⼒の256次元のベクトルと(θ, φ)からc = (r, g, b)を出⼒ • ⾊を視線⽅向に依存するように設計する理由 Ø 鏡⾯反射など、⽅向に依存する現象 (non-Lambertian) を考慮できるようにするため
視点に依存する効果のモデリング B. Midenhall et al. “NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis”, arxiv prepring, 2020. • (a), (b) 同じ箇所を異なる⽅向から⾒ると、⾊が変わるということが再現できて いる • (c) あらゆる⽅向から同じ箇所を⾒た場合の⾊の変化を可視化 • 半球状のあらゆる視点から同じ箇所を⾒ようとした場合の⾊を円の中に表⽰している
Radiance fieldからのボリュームレンダリング 1 • 古典的なボリュームレンダリングの原理に基づいた⽅法を使⽤ • 1984年にKajitaらが提案した⼿法 (Ray Tracing Volume Densities) を引⽤していた • Ray Tracingとは、カメラに届く光線を逆⽅向に辿ることにより画像を⽣成する⼿法のこと • 本物の写真に近い画像をレンダリングできる⼿法として知られている • レイトレーシングによるボリュームレンダリングでは、光線を逆⽅向に辿りながら、物体のvolume density (透過率) を考慮しつつ各点の⾊を⾜し合わせ2D画像のあるピクセルの⾊を計算するイメー ジ (私の理解です) • 連続的なradiance fieldを考えるとボリュームレンダリングの以下のようになる • カメラの光線を表すベクトル (oを通りdの⽅向に伸びる) : • t_n, t_fは仮想的に設定した最も近い点と遠い点 • T(t)はt_nからtまでの光線に沿って積分した透過率 (volume density) を表し、光線がt_nからtまで 粒⼦にぶつかることなく移動する確率を表す
Radiance fieldからのボリュームレンダリング 2 • 実際にはradiance fieldを連続関数として積分するのではなくサンプルした点を⽤ いて区分求積法に基づいた近似計算を⾏う • この⽅法についてはMaxのボリュームレンダリングのレビュー論⽂で議論されている • サンプルする点の間隔は学習時には毎回ランダムに変化させている
NeRFの最適化 1: Positional encoding • xyzθφをMLPにそのまま⼊⼒しても画像の⾼周波成分は再現できない • DNNは低周波成分ばかりを学習してしまうバイアスがある (Rahaman et al. 2018) • ⼊⼒を⼀旦、⾼周波関数(high frequency functions)で⾼次元空間にマッピングしてからDNN に⼊⼒すると⾼周波成分を持つデータにfitしやすいらしい • 以下の埋め込み関数を⽤いて⼊⼒のベクトルを⾼次元空間に写像 • 三次元位置を表すベクトルx = (x, y, z)の各成分をこの関数に⼊⼒ • 視線⽅向 (θ, φ) については(x, y, z)成分を持つ単位ベクトルに変換し上の関数に⼊⼒ • このテクニックはTransformer (Vaswani et al. 2017) でも使われているらしい • 詳しい⼈教えてください
NeRFの最適化 2 : 階層的ボリュームサンプリング • 光線に沿って点を密にサンプルするのは計算効率が悪いので、重要度を考慮して、 出⼒画像により寄与する点を選ぶのが良い Ø階層的サンプリングという⼿法を提案 • 発想⾃体はボリュームレンダリングの研究で既出 (Levoy, 1990) 1. “corse”と”fine“の2つのネットワークを準備 2. 光線に沿って粗くサンプルした点を”coarse”ネットワークに⼊⼒し⾊と密度を 得たのちレンダリング 3. 得られた各点の重要度を⽤いて再度点をサンプルしなおす 4. 全ての点から”fine”ネットワークで⾊と密度を計算し画像をレンダリング
実装詳細 • データセットは画像と視点のペア、カメラ内部パラメータ、シーンの境界 (範囲) • シミュレーションデータのデータセットからは⾃明に得られる • 実データでは三次元復元のソフトウェアを⽤い推定したパラメータを使⽤ • 各イテレーションでランダムに光線をサンプルし、その後階層的サンプリングで三次元点を サンプルした • ボリュームレンダリングによりそれぞれの光線に対応するピクセルの⾊を計算 • 計算したピクセル値とGTとの⼆乗誤差を計算 • Rは光線の集合を表す, Cはピクセル値 (⾊), 添字のc, rはcoarse, fine networkに対応 • 光線は4096個サンプル, 三次元点は64 (coarse), 128 (fine) 個を階層的にサンプル • 10~30万iteration, NVIDIA V100 1個を⽤いて1~2⽇間学習
実験 : dataset • 合成データ • Deep Voxels dataset (Sitzmann et al. 2019) • 複雑ではない形状の物体をあらゆる視点からレンダリングしたデータセット • 鏡⾯反射なし • 画像のサイズは512x512 • 新しくCGでデータセットを作成 • 8種類のオブジェクト • 学習⽤に100視点、テスト⽤に200視点レンダリング • 画像のサイズは800x800 • 実データ • • • • • 8つのシーンを携帯電話のカメラでいろいろな視点から撮影したデータ ⼀部はMildenhallらが作成したデータ 20~62枚撮影 学習:テスト = 8:2 画像のサイズは1008x756
実験: ⽐較⼿法 • Neural Volumes (NV) (S. Lombardi et al. 2019.) • ダイナミックな3Dシーンをモデリング • 観測からRGBαボクセルグリッドとそのワープを推定 • クエリ視点でレイマーチング (カメラに⼊る光線を逆⽅向に辿るレンダリング⼿法) により新規視点のビューをレンダリング • Scene Representation Networks (SRN) (V. Sitzmann et al. 2019.) • • • • シーンを不透明な表⾯として表現 MLPで各点 (x, y, z) のfeatureを計算 RNNで光線を進む幅を計算する→計算した分だけ進む を繰り返す 最終ステップの時の位置を物体の表⾯とし、⾊をfeatureからデコードする • Local Light Field Fusion (LLFF) (B. Mildenhall et al. 2019) • 3D convolution により⼊⼒の各視点のRGBαグリッド (multiplane image (MPI))を 直接推定 • クエリ視点でに対応する画像を複数のMPIから合成する
実験: 定量評価 • 3つの画質評価指標を⽤いて、新規視点画像合成のパフォーマンスを⽐較 • LPIPSはpretrained-CNNから抽出したfeatureの距離だったと思います (詳しい⼈ 教えてください)
実験: 定性評価 • 提案⼿法とLLFFは細かく復元ができ ている • LLFFは観測画像を再利⽤するような⼿ 法であることが⼤きい • SRNとNVは細かい画像を⽣成する表現 ⼒がない • NVではシーン表現が粗いボクセルなの が原因 • SRNはちょっとわかりません。。。
実験: 定性評価 細かい形状を合成できない、視点間の⼀貫性がない 視点間の⼀貫性はあるが、解像度が低い artifactが出やすい、視点間の⼀貫性がない場合がある 引⽤元 : https://www.youtube.com/watch?v=JuH79E8rdKc 詳しい結果は上記リンクからYouTubeの動画をご 覧ください
実験: 定量評価 • シーン表現を計算するのにかかる時間 • 提案⼿法は1つのシーンを表現するのにモデルを最低でも12時間学習する必要 がある • LLFFなど、事前に⾊々なシーンでモデルを学習しておくことで推論に時間が かからないものもある • 計算コスト • 提案⼿法は、ネットワークの重みが5MBでマシンの負荷が少ない • LLFFでは観測した画像データをメモリに保持するので15GBと負荷が⼤きい
実験: Ablation study • CGのシーンで⾊々条件を変えた結果を⽐較 • 提案⼿法でどこが結果に効いているか • Positional encoding, view dependenceは結果にかなり効く • 階層サンプリングは性能にはそこまで効かない (計算量の効率化に寄与) • 画像の枚数が少なすぎると性能が低下 • positional encoding時の周波数の数が少なすぎると性能が低下 • この辺りは順当な結果
まとめ • 提案⼿法まとめ • MLPを訓練することで、ある点の三次元空間の座標と視線⽅向を⼊⼒すると ⾊と密度を出⼒する Neural Radiance Field (NeRF)を獲得 • NeRFから古典的なボリュームレンダリングの⼿法を⽤いて新たな視点の ビューを⽣成することができる • 新規視点画像合成のタスクでSoTA • Future work • よりサンプル効率の⾼い⽅法 (学習時も推論時も) • 解釈性の問題 • シーン表現をMLPの重みという形式で獲得しているため直接解釈できない
⾊々なシーンにおける結果 YouTubeの動画の後半をご覧ください
参考⽂献 • B. Midenhall et al.: NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. arxiv prepring, 2020. • J. T. Kajiya et al.: Ray Tracing Volume Densities. Computer Graphics, 1984. • N. Max: Optical models for direct volume rendering. IEEE Transactions on Visualization and Computer Graphics 1995. • M. Levoy: Efficient ray tracing of volume data. ACM Transactions on Graphics 1990. • N. Rahaman et al.: On the spectral bias of neural networks. in ICML 2018. • A. Vaswani et al.: Attention is all you need. in NeurIPS 2018. • S. Lombardi et al.: Neural volumes: Learning dynamic renderable volumes from images. SIGGRAPH 2019. • V. Sitzmann et al.: Scene Representation Networks: Continuous 3D-Structure-Aware Neural Scene Representations. in NurIPS, 2019. • B. Mildenhall et al.: Local light field fusion: Practical view synthesis with prescriptive sampling guidelines. SIGGRAPH 2019.