Slide 1

Slide 1 text

第59回 CV勉強会@関東「CVPR2023読み会(前編)」 MobileNeRF: Exploiting the Polygon Rasterization Pipeline for Efficient Neural Field Rendering on Mobile Architectures 2023/07/23 takmin

Slide 2

Slide 2 text

自己紹介 2 株式会社ビジョン&ITラボ 代表取締役 皆川 卓也(みながわ たくや) 博士(工学) 「コンピュータビジョン勉強会@関東」主催 株式会社フューチャースタンダード 技術顧問 略歴: 1999-2003年 日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ セールス、プロジェクトマネジメント、サポート等の業務に従事 2004-2009年 コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事 2007-2010年 慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻 単位取得退学後、博士号取得(2014年) 2009年-現在 フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事(2018年法人化) http://visitlab.jp

Slide 3

Slide 3 text

3 株式会社ビジョン&ITラボ はコンピュータビジョンとAI によって御社の「こまった」 を助ける会社です

Slide 4

Slide 4 text

ビジョン 技術の町医者 AIビジネスについて、気軽に相談できる

Slide 5

Slide 5 text

事業内容 1. R&Dコンサルティング 2. 受託研究/開発 3. 開発マネジメント 4. 開発コンサルティング 5. ビジネス化コンサルティング 5

Slide 6

Slide 6 text

紹介する論文 7  MobileNeRF: Exploiting the Polygon Rasterization Pipeline for Efficient Neural Field Rendering on Mobile Architectures  Zhiqin Chen(1,2), Thomas Funkhouser(1), Peter Hedman(1), Andrea Tagliasacchi(1,2,3)  1.Google Research, 2.Simon Fraser University, 3.University of Toronto  要約:めっちゃレンダリングが早いNeRF  https://mobile-nerf.github.io/  モバイルブラウザでさくさく動く

Slide 7

Slide 7 text

NeRFのレンダリングの流れ 8  焦点と画像平面上の点を結ぶレイ上をサンプリング

Slide 8

Slide 8 text

NeRFのレンダリングの流れ 9  焦点と画像平面上の点を結ぶレイ上をサンプリング  サンプリングされた各点の3次元座標(𝑥, 𝑦, 𝑧)とレイの方 向(𝜃, 𝜙)をMLP 𝐹Θ (𝜃, 𝜙)へ入力

Slide 9

Slide 9 text

NeRFのレンダリングの流れ 10  焦点と画像平面上の点を結ぶレイ上をサンプリング  サンプリングされた各点の3次元座標(𝑥, 𝑦, 𝑧)とレイの方 向(𝜃, 𝜙)をMLP 𝐹Θ (𝜃, 𝜙)へ入力  MLP 𝐹Θ (𝜃, 𝜙)は色𝐜(R,G,B)と密度𝜎を出力

Slide 10

Slide 10 text

NeRFのレンダリングの流れ 11  算出した色𝐜𝑖 に密度𝜎𝑖 を元に重みをつけて、レイ上で和を取ることで色෠ C 𝐫 を算出 ෠ C 𝐫 = ෍ 𝑖=1 𝑁 𝑇𝑖 1 − exp(−𝜎𝑖 𝛿𝑖 ) 𝐜𝑖 𝑇𝑖 = exp − ෍ 𝑗=1 𝑖−1 𝜎𝑖 𝛿𝑖 𝛿𝑖 = 𝑡𝑖+1 − 𝑡𝑖 サンプリング間隔 画素𝐫の色 レイ上の点𝑖まで の透明度

Slide 11

Slide 11 text

NeRFのレンダリングの流れ 12  レイ上の各点でMLPの計算が必要なため、レンダリング に非常に時間がかかる。

Slide 12

Slide 12 text

Related Work (SNeRG) 13  Hedman, P., Srinivasan, P. P., Mildenhall, B., Barron, J. T., & Debevec, P., Baking Neural Radiance Fields for Real-Time View Synthesis. ICCV2021  NeRFのリアルタイムレンダリング  疎なVoxel Gridごとのパラメータを事前計算し、レンダリング時にレ イ方向に依存したパラメータのみ計算

Slide 13

Slide 13 text

Related Work (SNeRG) 14  Hedman, P., Srinivasan, P. P., Mildenhall, B., Barron, J. T., & Debevec, P., Baking Neural Radiance Fields for Real-Time View Synthesis. ICCV2021  NeRFのリアルタイムレンダリング  疎なVoxel Gridごとのパラメータを事前計算し、レンダリング時にレ イ方向に依存したパラメータのみ計算 位置に依存したパラ メータの事前計算 色 特徴量

Slide 14

Slide 14 text

Related Work (SNeRG) 15  Hedman, P., Srinivasan, P. P., Mildenhall, B., Barron, J. T., & Debevec, P., Baking Neural Radiance Fields for Real-Time View Synthesis. ICCV2021  NeRFのリアルタイムレンダリング  疎なVoxel Gridごとのパラメータを事前計算し、レンダリング時にレ イ方向に依存したパラメータのみ計算 視線方向に依存したパラメー タの計算(レンダリング時) 色

Slide 15

Slide 15 text

MobileNeRF概要 16  なんでレンダリングが早いの?  GPUのレンダリングパイプラインを最大限活用している。  どうやって?  レンダリングをNeRFで使用されるボリュームレンダリングでは なく、メッシュとテクスチャを使用  遅延シェーダー(differed shader)を使用することで、事前計算 した特徴量を色へ変換  SNeRGより早い?  SNeRGではレイ上で特徴量や色の重み付き和を求める必要 があるため、GPUのパイプラインを使った並列化が出来ず、メ モリ使用量が大きい

Slide 16

Slide 16 text

GPUのレンダリングパイプライン概要 17 頂点デー タ 頂点処理 • モデルの回 転・移動 ラスタライ ゼーション • 画素と三角 メッシュとの 対応 フラグメン ト処理 • 各画素の色 を決定 フレーム バッファ Vertex Shader Fragment Shader MobileNeRFは遅延 シェーダーを利用

Slide 17

Slide 17 text

遅延シェーダー(differed shader) 18  Forword Rendering  オブジェクトごとにライティングなどを計算して描画。  重なったオブジェクトの計算結果が捨てられる。  Differed Rendering  色の計算に必要な各パラメータ(色、法線、奥行等)を一旦G- Bufferへ格納し、その後各画素ごとに色を計算する。

Slide 18

Slide 18 text

レンダリングの流れ 19 MobileNeRFにおけるオブジェクトの表現 (三角メッシュ+特徴量テクスチャ)

Slide 19

Slide 19 text

レンダリングの流れ 20 カメラの位置を元に特徴量 を画素へマッピング

Slide 20

Slide 20 text

レンダリングの流れ 21 MLPで各画素ごとの色を推定 (Differed Rendering) GLSLを使用してFragment Shader上にMLPを実装

Slide 21

Slide 21 text

トレーニングの流れ 22 1. 空間をポリゴンメッシュで初期化し、レイと交差するメッ シュに対して、不透明度、特徴量、色を学習(Stage1) 2. 不透明度を連続値から二値へ変換(Stage2) 3. 疎なポリゴンメッシュと、不透明度および特徴量を元に テクスチャマップを生成し、遅延シェーダー上のMLPで レンダリング(Stage3)

Slide 22

Slide 22 text

Training Stage1 23 メッシュの初期化 カメラ位置パターン(データセット)ごとのメッシュ初期化方法 頂点の初期位置はVoxelの中心

Slide 23

Slide 23 text

Training Stage1 24 3つのMLPを使用してパラメータ算出 不透明度 特徴量 色 不透明度 特徴量 色 位置 位置 特徴量 視線 方向

Slide 24

Slide 24 text

Training Stage1 25 3つのMLPを使用してパラメータ算出 不透明度 特徴量 色 不透明度 特徴量 色 位置 位置 特徴量 視線 方向 𝛼𝑘 = 1 − exp −𝜎𝑘 𝛿𝑘 NeRFでは密度𝜎𝑘 をから不透明度𝛼𝑘 算出

Slide 25

Slide 25 text

Training Stage1 26 レイとメッシュの交点でパラメータ算出 不透明度 特徴量 色 不透明度 特徴量 色

Slide 26

Slide 26 text

Training Step1 27 レイとメッシュの交点でパラメータ算出 不透明度 特徴量 色 画素ごとの色の2乗誤差を損失関数とする(通常のNeRFと同じ) レイとメッシュの交点の色を積分

Slide 27

Slide 27 text

Training Stage1 28 不透明度 特徴量 色 以下の損失関数を最小化するよう、3つのMLPと頂点位置を学習: 画素の色につい ての損失 Distortion Loss: 色𝒄𝑘 の重みが疎に なるような正則化項 (詳しくはMip-NeRF を参照) 頂点がボクセ ルの外へ出な いようにするた めの正則化項

Slide 28

Slide 28 text

Training Stage1: Quadrature 29 不透明度 特徴量 色 計算に使用するメッシュの数を減らしたい Acceleration Grid 𝓖 (=各VoxelにおいてGeometryが存在しそう かというスコア)を導入

Slide 29

Slide 29 text

Training Stage1: Quadrature 30 不透明度 特徴量 色 計算に使用するメッシュの数を減らしたい レイが通過するVoxel Grid以外を除去

Slide 30

Slide 30 text

Training Stage1: Quadrature 31 不透明度 特徴量 色 Acceleration Gridが低いもの (Geometryが存在しなさそう)を除去

Slide 31

Slide 31 text

Training Stage1: Quadrature 32 不透明度 特徴量 色 残ったグリッド内のメッシュ とレイの交点求める

Slide 32

Slide 32 text

Training Stage1: Quadrature 33  Acceleration Grid 𝒢の学習 不透明度と近くなるように 疎かつ滑らかになるように stop gradient L1ノルムの正 則化項を加え ると疎になりや すい(Lasso)

Slide 33

Slide 33 text

Training Stage2: Binarized Training 34  不透明度𝛼𝑘 を連続値から[0,1]の二値へ変換  遅延シェーダーは半透明を扱えないため 𝛼𝑘 を二値 ො 𝛼𝑘 へ変換 連続値 二値 Stop Gradient 𝛼𝑘 > 0.5なら 1.0

Slide 34

Slide 34 text

Training Stage2: Binarized Training 35  不透明度𝛼𝑘 を連続値から[0,1]の二値へ変換  遅延シェーダーは半透明を扱えないため 𝛼𝑘 を二値 ො 𝛼𝑘 へ変換 ො 𝛼𝑘 から画素の色 ෠ 𝐂 𝐫 を算出

Slide 35

Slide 35 text

Training Stage2: Binarized Training 36  不透明度𝛼𝑘 を連続値から[0,1]の二値へ変換  遅延シェーダーは半透明を扱えないため 𝛼𝑘 を二値 ො 𝛼𝑘 へ変換 ො 𝛼𝑘 から画素の色 ෠ 𝐂 𝐫 を算出 二値の不透明度から算出した色 ෠ 𝐂 𝐫 とGround Truthとの二乗誤差損失

Slide 36

Slide 36 text

Training Stage2: Binarized Training 37  不透明度𝛼𝑘 を連続値から[0,1]の二値へ変換  遅延シェーダーは半透明を扱えないため 𝛼𝑘 を二値 ො 𝛼𝑘 へ変換 ො 𝛼𝑘 から画素の色 ෠ 𝐂 𝐫 を算出 二値の不透明度から算出した色 ෠ 𝐂 𝐫 とGround Truthとの二乗誤差損失 学習を安定させるために、連続値𝛼𝑘 での色の二乗誤差損失を加算

Slide 37

Slide 37 text

Training Stage2: Binarized Training 38  不透明度𝛼𝑘 を連続値から[0,1]の二値へ変換  遅延シェーダーは半透明を扱えないため Stage1と同様に3つのMLPと頂点位置を学習

Slide 38

Slide 38 text

Training Stage2: Binarized Training 39  不透明度𝛼𝑘 を連続値から[0,1]の二値へ変換  遅延シェーダーは半透明を扱えないため Stage1と同様に3つのMLPと頂点位置を学習 収束したら、二値の不透明度を用いた色の二乗誤差のみで不透明度以外の2つ のMLPを学習

Slide 39

Slide 39 text

Training Stage3: Discretization 40 1. 学習画像のカメラ位置から見える四角メッシュ(三角 x2)のみ保存(OBJ形式) 2. 各四角メッシュにK x Kサイズのテクスチャパッチを生 成 3. テクスチャパッチの各座標を三次元座標へ変換 4. 三次元座標に対応する不透明度𝛼𝑘 、および特徴量𝐟𝑘 をパッチ上の座標へ割り当て 5. パッチに割り当てられた不透明度𝛼𝑘 、および特徴量𝐟𝑘 を量子化してPNGファイルとして保存

Slide 40

Slide 40 text

Training Stage3: Discretization 41 1. 学習画像のカメラ位置から見える四角メッシュ(三角x2) のみ保存(OBJ形式) *メッシュは対象の3D形状を正確に表しているわけではない

Slide 41

Slide 41 text

Training Stage3: Discretization 42 2. 各四角メッシュにK x Kサイズのテクスチャパッチを生成

Slide 42

Slide 42 text

Training Stage3: Discretization 43 𝒑𝑘 𝒑𝑘 3. テクスチャパッチの各座標を三次元座標へ変換

Slide 43

Slide 43 text

Training Stage3: Discretization 44 𝒑𝑘 𝒑𝑘 𝐟𝑘 𝛼𝑘 4. 三次元座標に対応する不透明度𝛼𝑘 、および特徴量𝐟𝑘 を パッチ上の座標へ割り当て

Slide 44

Slide 44 text

Training Stage3: Discretization 45 𝒑𝑘 𝒑𝑘 𝐟𝑘 𝛼𝑘 5. パッチに割り当てられた不透明度𝛼𝑘 、および特徴量𝐟𝑘 を 量子化してPNGファイルとして保存 Save

Slide 45

Slide 45 text

Rendering 46 1. Zバッファを使用して、すべてのメッシュを元に2M x 2Nピク セルの特徴画像を生成  12チャネル=特徴量8 + 不透明度1 + 視線方向3 2. Anti-aliasingのために2x2領域の近傍特徴量を線形変換(平 均)し、M x Nピクセルの特徴画像生成 3. Fragment Shader上に実装した小さなMLPへ特徴画像を入 力して、各画素の色を算出  並列計算される

Slide 46

Slide 46 text

実験 47  実験環境  “8 synthetic 360°scenes”, “8 forward-facing scenes”, “5 unbounded 360°outdoor scenes”の3つのデータセット  以下のデバイス上で動作試験

Slide 47

Slide 47 text

実験 48  レンダリング速度とメモリ効率の比較

Slide 48

Slide 48 text

実験 49  レンダリング品質  SNeRGとほぼ同じ

Slide 49

Slide 49 text

実験 50  レンダリング品質  SNeRGとほぼ同じ 拡大すると SNeRGは平滑化 しすぎる傾向

Slide 50

Slide 50 text

実験 51  Ablation Study  レンダリング品質

Slide 51

Slide 51 text

実験 52  Ablation Study  レンダリング品質

Slide 52

Slide 52 text

実験 53  Ablation Study  レンダリング品質

Slide 53

Slide 53 text

実験 54  Ablation Study  レンダリング速度

Slide 54

Slide 54 text

実験 55  Limitation

Slide 55

Slide 55 text

実験 56  データをメッシュとテクスチャで表現しているので、シーン の編集が可能

Slide 56

Slide 56 text

まとめ 57  メッシュとテクスチャを用いて、GPUパイプライン上で高 速にレンダリングできるMobileNeRFの提案  既存手法(SNeRG)と比べて10倍速く、モバイルブラウザ でも高速に動く  Volumetric Textureの代わりにSurface Textureを用いるこ とで省メモリ  Limitation  Surfaceは対象の3D形状を正確に表しているわけではない。  半透明物体は扱えない  テクスチャの解像度で表現できないくらいズームすると、画像 がぼやける