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

MobileNeRF(第59回CV勉強会@関東発表資料)

 MobileNeRF(第59回CV勉強会@関東発表資料)

第59回 コンピュータビジョン勉強会@関東「CVPR2023読み会(前編)」
https://kantocv.connpass.com/event/288899/

で発表した発表資料です。

MobileNeRF: Exploiting the Polygon Rasterization Pipeline for Efficient Neural Field Rendering on Mobile Architectures

Takuya MINAGAWA

July 23, 2023
Tweet

More Decks by Takuya MINAGAWA

Other Decks in Technology

Transcript

  1. 自己紹介 2 株式会社ビジョン&ITラボ 代表取締役 皆川 卓也(みながわ たくや) 博士(工学) 「コンピュータビジョン勉強会@関東」主催 株式会社フューチャースタンダード

    技術顧問 略歴: 1999-2003年 日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ セールス、プロジェクトマネジメント、サポート等の業務に従事 2004-2009年 コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事 2007-2010年 慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻 単位取得退学後、博士号取得(2014年) 2009年-現在 フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事(2018年法人化) http://visitlab.jp
  2. 紹介する論文 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/  モバイルブラウザでさくさく動く
  3. NeRFのレンダリングの流れ 11  算出した色𝐜𝑖 に密度𝜎𝑖 を元に重みをつけて、レイ上で和を取ることで色෠ C 𝐫 を算出 ෠

    C 𝐫 = ෍ 𝑖=1 𝑁 𝑇𝑖 1 − exp(−𝜎𝑖 𝛿𝑖 ) 𝐜𝑖 𝑇𝑖 = exp − ෍ 𝑗=1 𝑖−1 𝜎𝑖 𝛿𝑖 𝛿𝑖 = 𝑡𝑖+1 − 𝑡𝑖 サンプリング間隔 画素𝐫の色 レイ上の点𝑖まで の透明度
  4. 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ごとのパラメータを事前計算し、レンダリング時にレ イ方向に依存したパラメータのみ計算
  5. 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ごとのパラメータを事前計算し、レンダリング時にレ イ方向に依存したパラメータのみ計算 位置に依存したパラ メータの事前計算 色 特徴量
  6. 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ごとのパラメータを事前計算し、レンダリング時にレ イ方向に依存したパラメータのみ計算 視線方向に依存したパラメー タの計算(レンダリング時) 色
  7. MobileNeRF概要 16  なんでレンダリングが早いの?  GPUのレンダリングパイプラインを最大限活用している。  どうやって?  レンダリングをNeRFで使用されるボリュームレンダリングでは

    なく、メッシュとテクスチャを使用  遅延シェーダー(differed shader)を使用することで、事前計算 した特徴量を色へ変換  SNeRGより早い?  SNeRGではレイ上で特徴量や色の重み付き和を求める必要 があるため、GPUのパイプラインを使った並列化が出来ず、メ モリ使用量が大きい
  8. GPUのレンダリングパイプライン概要 17 頂点デー タ 頂点処理 • モデルの回 転・移動 ラスタライ ゼーション

    • 画素と三角 メッシュとの 対応 フラグメン ト処理 • 各画素の色 を決定 フレーム バッファ Vertex Shader Fragment Shader MobileNeRFは遅延 シェーダーを利用
  9. 遅延シェーダー(differed shader) 18  Forword Rendering  オブジェクトごとにライティングなどを計算して描画。  重なったオブジェクトの計算結果が捨てられる。

     Differed Rendering  色の計算に必要な各パラメータ(色、法線、奥行等)を一旦G- Bufferへ格納し、その後各画素ごとに色を計算する。
  10. Training Stage1 25 3つのMLPを使用してパラメータ算出 不透明度 特徴量 色 不透明度 特徴量 色

    位置 位置 特徴量 視線 方向 𝛼𝑘 = 1 − exp −𝜎𝑘 𝛿𝑘 NeRFでは密度𝜎𝑘 をから不透明度𝛼𝑘 算出
  11. Training Stage1 28 不透明度 特徴量 色 以下の損失関数を最小化するよう、3つのMLPと頂点位置を学習: 画素の色につい ての損失 Distortion

    Loss: 色𝒄𝑘 の重みが疎に なるような正則化項 (詳しくはMip-NeRF を参照) 頂点がボクセ ルの外へ出な いようにするた めの正則化項
  12. Training Stage1: Quadrature 29 不透明度 特徴量 色 計算に使用するメッシュの数を減らしたい Acceleration Grid

    𝓖 (=各VoxelにおいてGeometryが存在しそう かというスコア)を導入
  13. Training Stage2: Binarized Training 36  不透明度𝛼𝑘 を連続値から[0,1]の二値へ変換  遅延シェーダーは半透明を扱えないため

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

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

    Stage1と同様に3つのMLPと頂点位置を学習 収束したら、二値の不透明度を用いた色の二乗誤差のみで不透明度以外の2つ のMLPを学習
  16. Training Stage3: Discretization 40 1. 学習画像のカメラ位置から見える四角メッシュ(三角 x2)のみ保存(OBJ形式) 2. 各四角メッシュにK x

    Kサイズのテクスチャパッチを生 成 3. テクスチャパッチの各座標を三次元座標へ変換 4. 三次元座標に対応する不透明度𝛼𝑘 、および特徴量𝐟𝑘 をパッチ上の座標へ割り当て 5. パッチに割り当てられた不透明度𝛼𝑘 、および特徴量𝐟𝑘 を量子化してPNGファイルとして保存
  17. Training Stage3: Discretization 45 𝒑𝑘 𝒑𝑘 𝐟𝑘 𝛼𝑘 5. パッチに割り当てられた不透明度𝛼𝑘

    、および特徴量𝐟𝑘 を 量子化してPNGファイルとして保存 Save
  18. Rendering 46 1. Zバッファを使用して、すべてのメッシュを元に2M x 2Nピク セルの特徴画像を生成  12チャネル=特徴量8 +

    不透明度1 + 視線方向3 2. Anti-aliasingのために2x2領域の近傍特徴量を線形変換(平 均)し、M x Nピクセルの特徴画像生成 3. Fragment Shader上に実装した小さなMLPへ特徴画像を入 力して、各画素の色を算出  並列計算される
  19. 実験 47  実験環境  “8 synthetic 360°scenes”, “8 forward-facing

    scenes”, “5 unbounded 360°outdoor scenes”の3つのデータセット  以下のデバイス上で動作試験
  20. まとめ 57  メッシュとテクスチャを用いて、GPUパイプライン上で高 速にレンダリングできるMobileNeRFの提案  既存手法(SNeRG)と比べて10倍速く、モバイルブラウザ でも高速に動く  Volumetric

    Textureの代わりにSurface Textureを用いるこ とで省メモリ  Limitation  Surfaceは対象の3D形状を正確に表しているわけではない。  半透明物体は扱えない  テクスチャの解像度で表現できないくらいズームすると、画像 がぼやける