Slide 1

Slide 1 text

©Rist Inc. 2021/05/13 藤本(@fam_taro) NeRFの概要と 派生系についてのふんわり紹介

Slide 2

Slide 2 text

©Rist Inc. ©Rist Inc. 2 ● 藤本裕介 ● fam_taro@twitter ● 1年前から株式会社Rist所属 ○ 前処理含め色々やってます ○ kaggle team にも所属してます ● kaggle master ○ https://www.kaggle.com/yukkyo 自己紹介

Slide 3

Slide 3 text

人類の感覚器官に、自由を取り戻す
 株式会社Rist
 設立日
 2016年8月1日
 従業員数
 40名(インターン生除く)
 事業概要
 AI・ロボットソリューションの提供
 東京本社
 東京都目黒区目黒2-11-3
 京都支社
 京都市下京区五条通河原町西入本覚寺前町830
 京都エクセルヒューマンビル 11階
 *当社は京セラグループに所属しています。 
 * 会社名、ロゴ、システム名、商品名、ブランド名などは、各社の商号、登録商標、または商標です。 
 Business Partners


Slide 4

Slide 4 text

©Rist Inc. ©Rist Inc. 4 ● この資料の対象 ○ 雰囲気で画像処理をしている人 ○ CGってなんですか?って人 ■ 「CG完全に理解した人」「CGチョットデキル人」は対象外です ● この資料で扱っていないもの ○ 細かい実験結果 ○ 厳密な数式・理論 ● 参照元がない図・表は下記元論文から引用しています ○ https://arxiv.org/abs/2003.08934 はじめに

Slide 5

Slide 5 text

©Rist Inc. ©Rist Inc. 5 ● 導入(7 min) ● NeRF について(10 min) ● 最近のNeRF派生形について(2 min) 目次

Slide 6

Slide 6 text

©Rist Inc. ©Rist Inc. 6 突然ですが皆さん、このタイトルの意味分かりましたか? 導入

Slide 7

Slide 7 text

©Rist Inc. ©Rist Inc. 7 突然ですが皆さん、このタイトルの意味分かりましたか? → 私は最初よくわかりませんでした 導入 ハハハハハッ!! 何言ってるかわかんねーや !

Slide 8

Slide 8 text

©Rist Inc. ©Rist Inc. 8 ですのでまずタイトルを下記のように分解します ● Representing Scenes as Neural ● Radiance ● Fields ● for View Synthesis 導入(この論文がやりたいこと)

Slide 9

Slide 9 text

©Rist Inc. ©Rist Inc. 9 ですのでまずタイトルを下記のように分解します ● Representing Scenes as Neural → ニューラルネットワークを用いたシーンの表現獲得  → metric learning・word2vec・グラフ埋め込み等も表現獲得に関する研究や研究領域に該 当する ● Radiance ● Fields ● for View Synthesis 導入(この論文がやりたいこと)

Slide 10

Slide 10 text

©Rist Inc. ©Rist Inc. 10 ですのでまずタイトルを下記のように分解します ● Representing Scenes as Neural ● Radiance ● Fields ● for View Synthesis → View(視点)を変えた場合の Synthesis(合成画像・シミュレーション画像) → 視点を変えたときに対象の物体(シーン)の見え方がどのように変わるのか 導入(この論文がやりたいこと)

Slide 11

Slide 11 text

©Rist Inc. ©Rist Inc. 11 ですのでまずタイトルを下記のように分解します ● Representing Scenes as Neural ● Radiance(放射輝度) ● Fields(場) ● for View Synthesis 導入(この論文がやりたいこと)

Slide 12

Slide 12 text

©Rist Inc. ©Rist Inc. 12 ですのでまずタイトルを下記のように分解します ● Representing Scenes as Neural ● Radiance(放射輝度)🤔🤔🤔 ● Fields(場)     🤔🤔🤔 ● for View Synthesis 導入(この論文がやりたいこと)

Slide 13

Slide 13 text

©Rist Inc. ©Rist Inc. 13 ですのでまずタイトルを下記のように分解します ● Representing Scenes as Neural ● Radiance(放射輝度) ● Fields(場) → どうやらこの2つはCG(ひいてはそのための物理)の世界からやってきたらしい。   あな恐ろしや。 ● for View Synthesis 導入(この論文がやりたいこと)

Slide 14

Slide 14 text

©Rist Inc. ©Rist Inc. 14 ですのでまずタイトルを下記のように分解します ● Representing Scenes as Neural ● Radiance(放射輝度) ● Fields(場) → 『場は時空の各点に関連する物理量である[2]。場では、座標および時間を指定すれば、( スカラー量、ベクトル量、テンソル量など の)ある一つの物理量が定まる。つまり、 数学的には空間座標が独立変数となっているような 関数として表現できることがその特徴 である。』( 場 - Wikipediaより) → この研究では時間については考慮してないので、「 空間(座標)を指定した場合に何かしらの物理量を返す 」関数と認識すれば良 さそう → え?なんの物理量???🤔🤔🤔 ● for View Synthesis 導入(この論文がやりたいこと)

Slide 15

Slide 15 text

©Rist Inc. ©Rist Inc. 15 少し戻ってみる ● for View Synthesis → View(視点)を変えた場合の Synthesis(合成画像・シミュレーション画像) → 視点を変えたときに対象の物体(シーン)の見え方がどのように変わるのか → 見え方が変わるってどういうこと? → 視点に届く光が変わること → 光は光源(太陽光や蛍光灯、電灯等)から発射されいろんな物体に衝突・反射しながら視 点(人間の目とか)に届く → 視点を変えたときの光の届き方をうまくシミュレートできれば自然な画像をシミュレーション できそう  → ようこそCG(そして光学)の世界へ 導入(この論文がやりたいこと)

Slide 16

Slide 16 text

©Rist Inc. ©Rist Inc. 16 ですのでまずタイトルを下記のように分解します ● Representing Scenes as Neural ● Radiance(放射輝度) ● Fields(場) → 『場は時空の各点に関連する物理量である[2]。場では、座標および時間を指定すれば、( スカラー量、ベクトル量、テンソル量など の)ある一つの物理量が定まる。つまり、 数学的には空間座標が独立変数となっているような 関数として表現できることがその特徴 である。』( 場 - Wikipediaより) → この研究では時間については考慮してないので、「 空間(座標)を指定した場合に何かしらの物理量を返す 」関数と認識すれば良 さそう → え?なんの物理量???🤔🤔🤔 → 光の物理量 ● for View Synthesis 導入(この論文がやりたいこと)

Slide 17

Slide 17 text

©Rist Inc. ©Rist Inc. 17 ですのでまずタイトルを下記のように分解します ● Radiance(放射輝度) → ある領域上・ある一点・ある方向に通過するフォトン量(本資料においては光の強さぐらい の認識でよい) → 詳しくは放射分析学(Radiometry)とかで調べましょう → またCGのレンダリング(3次元モデルを2次元画像に描写する)する場合に、レイトレーシン グ(Ray Tracing)という手法が用いられる場合がある   → 光源や視点からRay(レイ、光線)を追跡して視点からどのように見えるのか シミュレーションすること → この場合はレイが運ぶ量が放射輝度(Radiance) 導入(この論文がやりたいこと)

Slide 18

Slide 18 text

©Rist Inc. ©Rist Inc. 18 つまりどういうこと? ● Representing Scenes as Neural ● Radiance Fields → 視点に届く光をシミュレーションするためのいい感じの関数 → (その道のひとごめんなさい) ● for View Synthesis 導入(この論文がやりたいこと)

Slide 19

Slide 19 text

©Rist Inc. ©Rist Inc. 19 つまりこの論文がやりたいこと 導入 視点を変えたシーンのシミュレーション画像を生成するため のニューラルネットワークによる放射輝度場の表現

Slide 20

Slide 20 text

©Rist Inc. ©Rist Inc. 20 ● 公式デモページ(どんなことができるのか) ○ https://www.matthewtancik.com/nerf NeRF について

Slide 21

Slide 21 text

©Rist Inc. ©Rist Inc. 21 ● 入力から画像生成までの流れ ○ ネットワーク F Θ (MLP) ■ Input: 位置と視点の角度(水平方向・垂直方向) ● 角度は3次元ベクトルに変換されて入力される ■ Output ● Color: 3次元空間上の座標と視点の角度を与えると RGB が返される ● Density: 3次元空間上の座標を与えると密度(≒光の通りづらさ、物体がある確 率)が返される NeRF について

Slide 22

Slide 22 text

©Rist Inc. ©Rist Inc. 22 ● 入力から画像生成までの流れ ○ ネットワーク F Θ (MLP)の内訳 ■ 緑は Input ■ 赤は Output ■ 青は Fully Connected Layer ■ + は Concat NeRF について ■ 黒線は ReLU ■ オレンジ線は何もなし ■ 点線は Sigmoid

Slide 23

Slide 23 text

©Rist Inc. ©Rist Inc. 23 ● 入力から画像生成までの流れ ○ ネットワーク F Θ (MLP)の内訳(工夫点1) ■ 位置 X(3次元) と視点の角度 d(3次元)はそれぞれ下記の Positional Encoding の式 によって固定長のベクトルに変換されてから入力される ● 位置 X は L = 10, 角度 d は L = 4 ● sin と cos があるので、位置 X は 3*2*10=60、角度 d は 3*2*4=24 次元に変換される NeRF について

Slide 24

Slide 24 text

©Rist Inc. ©Rist Inc. 24 ● 入力から画像生成までの流れ ○ ネットワーク F Θ (MLP)の内訳 ■ 位置情報 X を2度入力しているのは先行研究の DeepSDF を参考にしたらしい ■ 視点角度情報 d を入力する前に密度σを取り出しているのは、σが視点角度 d に依 存しないことを強調したいため? NeRF について

Slide 25

Slide 25 text

©Rist Inc. ©Rist Inc. 25 ● 入力から画像生成までの流れ ○ 入力を Positional Encoding にしなかったり、No View Dependence(位置情報 X のみ ネットワークに入力する)にすると悪くなったとのこと NeRF について

Slide 26

Slide 26 text

©Rist Inc. ©Rist Inc. 26 ● 入力から画像生成までの流れ ○ Volume Rendering ■ 二次元画像(指定した視点から見た)が出力される ■ レイトレーシングの一種 ■ 視点とその方向に沿った Ray(光線・視線)に沿って、密度と色をかけたものを積算し ていくイメージ ■ Ray に沿って空間座標と視点の角度を入力していって RGBσ を取得して計算してい く(積分の近似計算を行う) NeRF について

Slide 27

Slide 27 text

©Rist Inc. ©Rist Inc. 27 ● 学習の流れ ○ 実画像を学習に使う場合、下記の情報を得るために予め三次元復元ソフトの COLMAPを使用する 必要がある ■ カメラ位置、内部パラメータ ■ シーンの境界(オブジェクトの境界?) ○ Input から Rendering Loss の計算まですべて微分可能 = 通常のNNの学習が可能 ○ ただし画像ではなく光線単位で Loss を計算して足している ■ 誤差を二乗誤差(平均してないことに注意) ■ r(t) は1つの Ray(光線)を表す ■ C(r) を計算するにあたっては、r 上の点をいくつかサンプリングして計算する ● 正確には光線に沿って積分を計算する箇所をサンプリングして近似計算している NeRF について

Slide 28

Slide 28 text

©Rist Inc. ©Rist Inc. 28 ● 学習の流れ ○ 実画像を学習に使う場合、下記の情報を得るために予め三次元復元ソフトの COLMAPを使用する 必要がある ■ カメラ位置、内部パラメータ ■ シーンの境界(オブジェクトの境界?) ○ Input から Rendering Loss の計算まですべて微分可能 = 通常のNNの学習が可能 ○ ただし画像ではなく光線単位で Loss を計算して足している ■ 誤差を二乗誤差(平均してないことに注意) ■ r(t) は1つの Ray(光線)を表す ■ C(r) を計算するにあたっては、r 上の点をいくつかサンプリングして計算する NeRF について え、C C とC f の2種類ある?🤔

Slide 29

Slide 29 text

©Rist Inc. ©Rist Inc. 29 ● 学習の流れ ○ 実は精度を上げるために、Hierarchical volume sampling(階層的ボリュームサンプリング)という 手法を使っている(先行研究で提案されている手法、工夫点2) i. 同じ構造のネットワークを2つ用意する 1. Coarse(粗い)レンダリング用ネットワーク 2. Fine(細かい)レンダリング用ネットワーク ii. まず光線の各点を粗くサンプリングし、Coarse ネットワークで各点について色と密度 を計算してレンダリング iii. Coarse レンダリング結果を元に各点を重み付け iv. 重み付けした結果を元に光線から再度サンプリング(ii. より多く) v. ii. と iv. で得た各点について Fine ネットワークで色と密度を計算してレンダリング NeRF について

Slide 30

Slide 30 text

©Rist Inc. ©Rist Inc. 30 ● 導入 ● NeRF について ● 最近のNeRF 派生形について 目次

Slide 31

Slide 31 text

©Rist Inc. ©Rist Inc. 31 NeRF は結果を見ると SoTA だが、以下について課題が残っている → そのうちいくつかは既に対応した研究が発表されていたりする ● 実画像で学習する場合に外部ツール(COLMAP)によるカメラ位置等のパラメータ推定が必要 ● 学習データの量が多い ○ 一つのシーンに対し 20-60 枚(多いとみるか否か…) ● 同一環境下で撮影されている前提(視点以外の差分があまりない想定) ● 学習時間が長い ○ V100 で 1-2 day ● 推論時間が遅い ○ 1 image / 15 second 最近のNeRF派生形について

Slide 32

Slide 32 text

©Rist Inc. ©Rist Inc. 32 NeRF は結果を見ると SoTA だが、以下について課題が残っている → そのうちいくつかは既に対応した研究が発表されていたりする ● 実画像で学習する場合に外部ツール(COLMAP)によるカメラ位置等のパラメータ推定が必要 ○ Wang, Zirui, Shangzhe Wu, Weidi Xie, Min ChenとVictor Adrian Prisacariu. 「NeRF--: Neural Radiance Fields Without Known Camera Parameters」. arXiv:2102.07064 [cs], 2021年2月19日. http://arxiv.org/abs/2102.07064. ● 学習データの量が多い ● 同一環境下で撮影されている前提(視点以外の差分があまりない想定) ○ Martin-Brualla, Ricardo, Noha Radwan, Mehdi S. M. Sajjadi, Jonathan T. Barron, Alexey DosovitskiyとDaniel Duckworth. 「NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections」. arXiv:2008.02268 [cs], 2021年1月6日. http://arxiv.org/abs/2008.02268. ● 学習時間が長い ○ NeRFの場合、一つのシーンに対し、V100 で 1~2日 ■ これを長いとするか否かは人による?🤔 ● 推論時間が遅い ○ Garbin, Stephan J., Marek Kowalski, Matthew Johnson, Jamie ShottonとJulien Valentin. 「FastNeRF: High-Fidelity Neural Rendering at 200FPS」. arXiv:2103.10380 [cs], 2021年4月15日. http://arxiv.org/abs/2103.10380. ■ オリジナルの 3,000 倍らしい… 最近のNeRF派生形について

Slide 33

Slide 33 text

©Rist Inc. ©Rist Inc. 33 ● NeRF とは ○ NNを使ったシーンの放射輝度場表現 ○ これにより視点を変えたときの画像を精度良く生成できる ○ 以下の部分がすべて微分可能なため学習可能 ■ 入力 → ネットワーク → 出力 → レンダリング → 損失関数計算 ○ 精度を上げる上で以下2つを適用している ■ 視点の位置と方向の Positional Encoding ■ Hierarchical volume sampling(階層的ボリュームサンプリング) ● NeRF には課題も残っているけどどんどん解決されていっている ○ (コンペで使う日も近い?🤔) まとめ

Slide 34

Slide 34 text

©Rist Inc. ©Rist Inc. 34 ● B. Mildenhall, P. P. Srinivasan, M. Tancik, J. T. Barron, R. RamamoorthiとR. Ng, 「NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis」, arXiv:2003.08934 [cs], 8月 2020, 参照: 5月 14, 2021. [Online]. Available at: http://arxiv.org/abs/2003.08934 ● R. Martin-Brualla, N. Radwan, M. S. M. Sajjadi, J. T. Barron, A. DosovitskiyとD. Duckworth, 「NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections」, arXiv:2008.02268 [cs], 1月 2021, 参照: 5月 14, 2021. [Online]. Available at: http://arxiv.org/abs/2008.02268 ● [DL輪読会]NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis ● 【論文読解】NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections - Qiita ● 三次元空間のニューラルな表現と NeRF | ALBERT Official Blog 参考文献