Upgrade to Pro — share decks privately, control downloads, hide ads and more …

論文輪読会 第16回 "NeRF:Representing Scenes as Neural"

AcademiX
July 22, 2023

論文輪読会 第16回 "NeRF:Representing Scenes as Neural"

AcademiX が開催した 第16回 論文輪読会 資料

日時:2023/07/1
発表者:Yuta Kodaさん
論文タイトル:NeRF:Representing Scenes as Neural

<概要>
5次元の入力(x,y,z, θ, φ)からそれぞれの点のvolume density と色を出力するNNを学習させることで、新しい視点の画像の生成やNNの重みパラメータによる3D mapの表現が可能になった。

AcademiX

July 22, 2023
Tweet

More Decks by AcademiX

Other Decks in Science

Transcript

  1. • ここに出てくる図のほとんどは以下の論文から引用したものです。 Paper:「NeRF: Representing Scenes as Neural Radiance Fields for

    View Synthesis」 Author : Ben Mildenhall and Pratul P. Srinivasan and Matthew Tancik and Jonathan T. Barron and Ravi Ramamoorthi and Ren Ng year : 2020 Journal :ECCV 2
  2. Outline 1. 導入 2. NeRFの全体像 3. NeRFの構造 ① 計算式とモデル図 ②

    Positional Encoding ③ Hierarchical Sampling ④ 損失関数 4. 出力結果と評価 5. 最後に Appendix : NDC space, レンダリング画像の作成方法 3
  3. Outline 1. 導入 2. NeRFの全体像 3. NeRFの構造 ① 計算式とモデル図 ②

    Positional Encoding ③ Hierarchical Sampling ④ 損失関数 4. 出力結果と評価 5. 最後に Appendix : NDC space, レンダリング画像の作成方法 4
  4. 導入 • 今までのアプローチ手法 ◦ mesh-based representationまたはvolumetric representationを学習し、新しい視点の画像をレ ンダリングしようと頑張っていた Þ mesh-basedの方法は学習が難しく

    Þ volumetric(離散的)の方法は空間の複雑さから高解像度の画像を生成する能力がちょっと.... • 連続的なvolumeをencodingすることでより質の良い画像を生成できた 6
  5. 導入 • 新規性、特徴 1. 5次元(x,y,z,φ,θ)のneural radiance fieldsで複雑な幾何や物質を連続的 に表現する方法 2. 古典的なvolume

    rendering方法を基に微分可能なレンタリング手順を 踏んでいる。また、この方法の中でhierarchical samplingでMLPの容 量(パラメータ)を可視空間に割り当てる 3. positional encodingで5次元(x,y,z,φ,θ)の入力をより高次元に写像する 8
  6. Outline 1. 導入 2. NeRFの全体像 3. NeRFの構造 ① 計算式とモデル図 ②

    Positional Encoding ③ Hierarchical Sampling ④ 損失関数 4. 出力結果と評価 5. 最後に Appendix : NDC space, レンダリング画像の作成方法 9
  7. NeRFの全体像 • 全体図 hierarchical sampling volume density along the ray

    画像に写っているRGBを予測 (x, y, z) は3次元の場所 (θ, Φ) rayの方向 σはvolume density 10
  8. NeRFの構造(計算式とモデル図) ここで、𝑇 𝑡 = 𝑒𝑥𝑝 − ∫ !! ! 𝜎

    𝒓 𝑠 𝑑𝑠 𝐶 𝒓 = ∫ -𝒏 -𝒇 𝑇 𝑡 𝜎 𝒓 𝑡 𝒄 𝒓 𝑡 , 𝒅 𝑑𝑡 𝒅 : カメラの方向 𝑇 𝑡 : 透過率 𝜎 𝒓 𝑡 : volume density 𝒄 𝒓 𝑡 , 𝒅 : tの位置での(r,g,b) ray : 𝒓 𝑡 = 𝒐 + 𝑡𝒅 • 数式 C (r): volume rendering (画像に写る色を決める) 12
  9. NeRFの構造(計算式とモデル図) 𝑇 𝑡 = 𝑒𝑥𝑝 − 3 !! ! 𝜎

    𝒓 𝑠 𝑑𝑠 𝐶 𝒓 = ∫ -𝒏 -𝒇 𝑇 𝑡 𝜎 𝒓 𝑡 𝒄 𝒓 𝑡 , 𝒅 𝑑𝑡 𝒓 𝑡 = 𝒐 + 𝑡𝒅 • 数式 T(t)は、物体に当たった後、それ以降 Tの値が低くなる。 つまり、初めに当たった物体の色が優先して出力される。 13
  10. NeRFの構造(計算式とモデル図) • 数式 ただ、離散化しないとコンピュータで計算できないので、 𝑡𝒊 ~ 𝑢𝑛𝑖𝑓𝑜𝑟𝑚 𝑡" + 𝑖

    − 1 𝑁 (𝑡# − 𝑡") 𝑡" + 𝑖 𝑁 (𝑡# − 𝑡") 𝒓 𝑡 = 𝒐 + 𝑡𝒅 と入力の(x,y,z)を決めるtを複数サンプリングする。 14 tn tf ...... N個の領域
  11. NeRFの構造(計算式とモデル図) • 数式 その後、サンプリングしたtに対し、以下のように式を変換。 𝐶 𝒓 = ∫ -𝒏 -𝒇

    𝑇 𝑡 𝜎 𝒓 𝑡 𝒄 𝒓 𝑡 , 𝒅 𝑑𝑡 𝐶 𝒓 = , 456 7 𝑇4 1 − exp(−𝜎4 𝛿4 ) 𝒄4 ここで赤線の部分が変更されているが、 ここではσが大きいほど1に、小さいほど0に近づけている(密度みたいな感じ)。 NNで予測している部分は σとcの部分 (C(r)はvolume rendering後の結果) 15
  12. NeRFの全体像(再掲) • 全体図 hierarchical sampling volume density along the ray

    画像に写っているRGBを予測 (x, y, z) は3次元の場所 (θ, Φ) rayの方向 σはvolume density 16
  13. NeRFの構造(計算式とモデル図) • モデル図 緑色 : 入力 青色 : 中間層 赤色

    : 出力 γ : Positional Encoding ReLU Sigmoid no activation with ReLU skip connection サンプリングした各点における σとcolorを予測 17
  14. Outline 1. 導入 2. NeRFの全体像 3. NeRFの構造 ① 計算式とモデル図 ②

    Positional Encoding ③ Hierarchical Sampling ④ 損失関数 4. 出力結果と評価 5. 最後に Appendix : NDC space, レンダリング画像の作成方法 18
  15. NeRFの構造(Hierarchical Sampling) • Hierarchical Sampling また、学習をより質的に良くするためにray上で点(x,y,z)をサンプル する方法を工夫した。 𝑪&'()*+ 𝒓 =

    D ,-% 𝑵𝒄 𝑇, 1 − exp(−𝜎,𝛿,) 𝒄, 𝑡𝒊 ~ 𝑢𝑛𝑖𝑓𝑜𝑟𝑚 𝑡" + 𝑖 − 1 𝑁 (𝑡# − 𝑡" ) 𝑡" + 𝑖 𝑁 (𝑡# − 𝑡" ) サンプリングでできた式、これだけだと物質がありそうな部分の学習が不十分 20
  16. NeRFの全体像(再掲) • 全体図 hierarchical sampling volume density along the ray

    画像に写っているRGBを予測 (x, y, z) は3次元の場所 (θ, Φ) rayの方向 σはvolume density 21
  17. NeRFの構造(Hierarchical Sampling) • Hierarchical Sampling また、学習をより質的に良くするためにray上で点(x,y,z)をサンプル する方法を工夫した。 𝑪&'()*+ 𝒓 =

    D ,-% 𝑵𝒄 𝑇, 1 − exp(−𝜎,𝛿,) 𝒄, wi と捉えて、(wi が大きいところは物質がある可能性が高い) ́ 𝑤, = 𝑤, ∑ /-% 0# 𝑤/ という確率密度関数(PDF)に変換 22
  18. NeRFの構造(Hierarchical Sampling) • Hierarchical Sampling また、学習をより質的に良くするためにray上で点(x,y,z)をサンプル する方法を工夫した。 ́ 𝑤, =

    𝑤, ∑ /-% 0# 𝑤/ このPDFからinverse transform sampling ※ https://en.wikipedia.org/wiki/Inverse_transform_sampling 赤色の関数を使ってサンプリング 23
  19. NeRFの構造(損失関数) • 損失関数 (Total Squared Error) 𝐿 = 2 $∈&

    𝐶'()$*+(𝑟) − 𝐶(𝑟) , , + 𝐶#-"+(𝑟) − 𝐶(𝑟) , , ここでC(r)はGround Truth 学習では、4096個のraysでNc = 64, Nf = 128のサンプリングを行った。 学習は、10万から30万回、NVIDIA V100 GPU上で1~2日かかった。 25 batch size
  20. Outline 1. 導入 2. NeRFの全体像 3. NeRFの構造 ① 計算式とモデル図 ②

    Positional Encoding ③ Hierarchical Sampling ④ 損失関数 4. 出力結果と評価 5. 最後に Appendix : NDC space, レンダリング画像の作成方法 26
  21. 出力結果と評価 定量的に評価 • PSNR(ピーク信号対雑音比) ◦ 画質の再現性に影響を与える、信号がとりうる最大パワー(画像では255)と劣化をもたらすノ イズ(Ground truthと出力画像のMSE)の比率で評価 • SSIM

    ◦ 画素値、コントラスト、構造の変化を評価する指標 ◦ PSNRの問題点(人の感覚とマッチしていない評価)を改善するために考えられた指標 • LPIPS ◦ 学習済みの画像分類ネットワークの畳み込み層が出力する特徴量を基にした評価 ◦ より人の感覚に近い評価ができる指標 28
  22. 出力結果と評価 Train : 100, Test :200 Train : 479, Test

    :1000 ここで、Real Forward-FacingでLLFFの方が精度が良くなっているが、 動画にあるように私たちの方法の方が一貫性がありよいですと論文に記載されている。 NeRFはPSNR,SSIMは高いほど精度が良く,LPIPSは小さいほど精度が良いことを表している。 ご覧のように、NeRFは既存手法よりも格段に良い指標である。 29
  23. Appendix • レンダリング画像の作成 • NDC space あるモデルを[-1, 1]の立方体の範囲に収める方法 near, far

    , right, topを決める必要がある。 行列計算により実現可能 学習前に使用 Realistic synthetic dataset(800 x 800 pixel)ではレンダリング画像を作成するのに、 64万 (ray / 枚) で およそ1.5億から2億回のクエリが必要になる。 34