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

Introducing "Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"

Introducing "Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"

Introduction slides for "Instant Neural Graphics Primitives with a Multiresolution Hash Encoding" at 第58回 コンピュータビジョン勉強会@関東

Daigo HIROOKA

April 30, 2023
Tweet

More Decks by Daigo HIROOKA

Other Decks in Research

Transcript

  1. 第58回 コンピュータビジョン勉強会@関東
    @daigo_hirooka
    Instant Neural Graphics Primitives with a
    Multiresolution Hash Encoding

    View Slide

  2. スピーカー自己紹介
    ● 廣岡大吾
    ○ dhirooka (@daigo_hirooka) / Twitter
    ● キャディ株式会社
    ○ MLOps エンジニアとして図面解析システムや
    ML リポジトリの CI/CD の整備
    ○ 最近は図面活用 SaaS の SRE として GKE の
    お守りなどを担当

    View Slide

  3. 3D × DeepLearning の研究紹介にあたって
    ● 最近は ML ベースの 3D レンダリングも簡単に利用可能になってきている
    ○ Luma AI: 3D レンダリングの API やアプリを提供
    ○ nerfstudio: NeRF の学習・評価用フレームワーク
    ● 今回は nerfstudio でも提供されている InstantNGP を紹介
    ● キャディでは現在これらの技術は使っていません
    が、使う機会が来たら面白そう 🤗

    View Slide

  4. 3D × DeepLearning の研究紹介にあたって
    ● Zip-NeRF: Anti-Aliased Grid-Based Neural Radiance Fields arXiv 2023
    ○ mip-NeRF 360(サブボリュームアプローチ)によるアンチエイリアス
    ○ InstantNGP(グリッドベースアプローチ)による高速化

    View Slide

  5. 3D × DeepLearning の研究紹介にあたって
    ● Zip-NeRF: Anti-Aliased Grid-Based Neural Radiance Fields arXiv 2023
    ○ mip-NeRF 360(サブボリュームアプローチ)によるアンチエイリアス
    ■ →Mip-NeRF ICCV2021輪読会スライド - Speaker Deck で一部紹介
    ○ InstantNGP(グリッドベースアプローチ)による高速化
    ■ →今回紹介

    View Slide

  6. 紹介論文:InstantNGP
    https://nvlabs.github.io/instant-ngp/

    View Slide

  7. 紹介論文:InstantNGP
    ● SIGGRAPH 2022 にて NVIDIA から発表
    ● SDFやNeRFなど様々なレンダリングタスクに導入可能
    ● 学習・推論の両方を大幅に高速化
    https://nvlabs.github.io/instant-ngp/

    View Slide

  8. グラフィックスプリミティブとは
    コンピュータグラフィックスの描画における基本要素のこと
    ● 点プリミティブ:ピクセル描画など
    ● 線プリミティブ:図形描画など
    ● 三角形プリミティブ: 3Dモデルの描画など

    View Slide

  9. Neural Graphics Primitives(NGP)
    NGP:NNへのクエリに基づいたグラフィックス描画( NeRF, SDF, etc. )
    https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4

    View Slide

  10. Why using NN?
    https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4
    ● メモリ負荷を計算負荷に置き換え
    ● 柔軟な入力形式
    ● レンダリングは遅い
    ○ →工夫により高速化

    View Slide

  11. Summary
    Title: InstantNGP with a Multiresolution Hash Encoding
    = Multiresolution Hash Encoding によるお手軽 NN グラフィックス描画

    View Slide

  12. Summary
    https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4

    View Slide

  13. Summary
    https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4

    View Slide

  14. Input encoding in NeRF
    ● NeRF では入力位置と角度に frequency encoding を適用し NN へ入力
    ○ →高周波成分を捉えられるようになり、ぼやけづらくなる
    https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4

    View Slide

  15. Input encoding in NeRF: Parametric encodings
    ● 補助的な学習可能パラメータを配置する方法も提案されている
    ○ 代表例:空間を分割するボクセルグリッドの頂点に特徴ベクトルを配置・学習する
    ■ +:位置→特徴量の推論を省略できるため、学習・推論高速化、精度向上の傾向
    ■ +:グリッドを多重解像度にすることで省パラメータ化できる
    [2007.11571] Neural Sparse Voxel Fields より

    View Slide

  16. Input encoding in NeRF: Parametric encodings
    ● 補助的な学習可能パラメータを配置する方法も提案されている
    ○ 代表例:空間を分割するボクセルグリッドの頂点に特徴ベクトルを配置・学習する
    ■ Δ :重要なのは物体表面。多くのグリッドの特徴ベクトル(≒メモリ)は無駄
    [2007.11571] Neural Sparse Voxel Fields より

    View Slide

  17. Input encoding in NeRF: Parametric encodings
    ● 補助的な学習可能パラメータを配置する方法も提案されている
    ○ 代表例:空間を分割するボクセルグリッドの頂点に特徴ベクトルを配置・学習する
    ■ Δ :重要なのは物体表面。多くのグリッドの特徴ベクトル(≒メモリ)は無駄
    ● →特徴ベクトルを sparse に保持することで効率化可能
    [2007.11571] Neural Sparse Voxel Fields より

    View Slide

  18. Encoding によるレンダリングへの影響
    ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上
    ● グリッドを多重解像度化 →省パラメータ化
    ● グリッドをスパース化 →省パラメータ化

    View Slide

  19. Encoding によるレンダリングへの影響
    ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上
    ● グリッドを多重解像度化 →省パラメータ化
    ● グリッドをスパース化 →省パラメータ化
    提案
    Hash table を用いて
    シンプル・汎用に実装

    View Slide

  20. Encoding によるレンダリングへの影響
    ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上
    ● グリッドを多重解像度化 →省パラメータ化
    ● グリッドをスパース化 →省パラメータ化
    パラメータ数は「NN のパラメータ数+特徴ベクトルのパラメータ数」を表記
    提案
    Hash table を用いて
    シンプル・汎用に実装

    View Slide

  21. Proposed: Multiresolution Hash Encoding
    ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上
    ● グリッドを多重解像度化 →省パラメータ化
    ● グリッドをスパース化 →省パラメータ化
    提案
    Hash table を用いて
    シンプル・汎用に実装

    View Slide

  22. Proposed: Multiresolution Hash Encoding
    ● 1. 多重解像度のグリッドを導入
    ○ 多様なスケールの特徴を効率よく捉える
    ○ 位置 x の評価時には周囲のボクセルグリッドの頂点を参照する

    View Slide

  23. Proposed: Multiresolution Hash Encoding
    ● 2. Hash table からグリッド頂点に対応する特徴ベクトルを参照
    ○ 頂点の位置ベクトルを hash 関数によって擬似ランダムなインデックスに置き換え

    View Slide

  24. Proposed: Multiresolution Hash Encoding
    ● 2. Hash table からグリッド頂点に対応する特徴ベクトルを参照
    ○ 頂点の位置ベクトルを hash 関数によって擬似ランダムなインデックスに置き換え
    ○ Hash table からインデックスに応じた特徴ベクトルを参照

    View Slide

  25. Proposed: Multiresolution Hash Encoding
    ● 3. 位置 x の特徴ベクトルを線形補間

    View Slide

  26. Proposed: Multiresolution Hash Encoding
    ● 4. 各解像度の特徴ベクトルを連結して NN ヘ入力
    ○ 追加の特徴ベクトルを導入することも可能( NeRF の場合視線の角度など)

    View Slide

  27. Proposed: Multiresolution Hash Encoding
    ● 1. 多重解像度のグリッドを導入
    ● 2. Hash table からグリッド頂点に対応する特徴ベクトルを参照
    ● 3. 位置 x の特徴ベクトルを線形補間
    ● 4. 各解像度の特徴ベクトルを連結して NN ヘ入力

    View Slide

  28. Proposed: Multiresolution Hash Encoding
    ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上
    ● グリッドを多重解像度化 →省パラメータ化
    ● グリッドをスパース化 →省パラメータ化
    ○ 高解像度では hash table のサイズ T <グリッド頂点数→スパース化
    提案
    Hash table を用いて
    シンプル・汎用に実装

    View Slide

  29. Implicit hash collision resolution
    ● 高解像度では hash table のサイズ T <グリッド頂点数→スパース化
    ○ →暗黙的にハッシュ衝突を許している
    ● 実際にはレンダリングへの悪影響は少ない
    ○ 低解像度:そもそもハッシュ衝突が少ない
    ○ 高解像度:hash 関数によって、衝突は空間上でほぼランダムに発生する
    ■ →頂点のペアが複数の解像度で衝突することはほとんどない
    ○ 学習時:衝突した位置の両方が描画に有用(≒物体周辺)であることは稀
    ■ →hash tableの特徴ベクトルに対して、物体周辺の学習が支配的になる

    View Slide

  30. Hash Table size affects performance / quality tradeoffs
    ● Hash table のサイズ T によるトレードオフ
    ○ Large T:高品質、学習に時間がかかる、高メモリ
    ○ Small T:低品質、学習高速化、省メモリ

    View Slide

  31. Hash Table size affects performance / quality tradeoffs
    ● Hash table のサイズ T によるトレードオフ
    ○ Large T:高品質、学習に時間がかかる、高メモリ
    ○ Small T:低品質、学習高速化、省メモリ

    View Slide

  32. Implementation
    tiny-cuda-nn フレームワークを用いて全体を実装:NVlabs/instant-ngp
    ● 推論・勾配計算の速度向上のために hash table は半精度で保持
    ● GPU キャッシュを有効に利用するために hash table は解像度ごとに評価
    ● RTX 3090 の 6 MB L2 キャッシュを踏まえて、各解像度の特徴ベクトルの次元 F = 2 とした
    ● その他詳細設定は論文を参照

    View Slide

  33. Experiments
    ● さまざまなタスクを高速に学習、高精度にレンダリング可能

    View Slide

  34. Experiments: Performance & Quality (NeRF)
    ● 既存手法よりも非常に高速に優れたレンダリングを学習可能
    ● Ours: Hash は〜1 min 程度の学習で Ours: Frequency (5 min) より優れた性能
    ○ → Hash table が学習高速化に貢献している

    View Slide

  35. Experiments: Performance & Quality (SDF)
    ● 既存の優れた手法( NGLOD)に匹敵
    ● 物体表面にハッシュ衝突によると思われるアーティファクトが発生している

    View Slide

  36. Discussion
    ● ハッシュ関数の選定
    ○ いくつか試した中では、本文内のものが最も優れていた
    ○ 将来的には辞書学習アプローチも検討できる
    ● ハッシュ衝突によるアーティファクト
    ○ 特にSDFでは、ハッシュ衝突によると思われる粒状のアーティファクトが確認された
    ○ → Lookup 時のフィルタリングなどによる対応が考えられる

    View Slide

  37. まとめ・感想
    ● まとめ
    ○ さまざまなレンダリングタスクに利用できる multiresolution hash encoding を提案した
    ○ tiny-cuda-nn フレームワークで全体を実装することでさらに高速化した
    ○ 高速な学習と優れたレンダリング性能が確認された
    ● 感想
    ○ グリッド化やスパース化による改善を hash table によってシンプルに達成している
    ■ さまざまなレンダリングタスクに導入しやすい点も◯
    ○ ハッシュ衝突に対する hash table サイズのチューニングが難しそう
    ○ 画像や 3D シーンを圧縮する技術としても今後期待したい

    View Slide

  38. 参考資料
    ● Instant Neural Graphics Primitives with a Multiresolution Hash Encoding
    ○ 本スライド内で記載のない画像は論文から引用
    ● Real-time Neural Radiance Caching for Path Tracing | Research
    ● Mip-NeRF ICCV2021輪読会スライド - Speaker Deck
    ● プリミティブ (Direct3D 9 グラフィックス) - Win32 apps | Microsoft Learn
    ● Zip-NeRF: Anti-Aliased Grid-Based Neural Radiance Fields arXiv 2023

    View Slide