Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
第58回 コンピュータビジョン勉強会@関東 @daigo_hirooka Instant Neural Graphics Primitives with a Multiresolution Hash Encoding
Slide 2
Slide 2 text
スピーカー自己紹介 ● 廣岡大吾 ○ dhirooka (@daigo_hirooka) / Twitter ● キャディ株式会社 ○ MLOps エンジニアとして図面解析システムや ML リポジトリの CI/CD の整備 ○ 最近は図面活用 SaaS の SRE として GKE の お守りなどを担当
Slide 3
Slide 3 text
3D × DeepLearning の研究紹介にあたって ● 最近は ML ベースの 3D レンダリングも簡単に利用可能になってきている ○ Luma AI: 3D レンダリングの API やアプリを提供 ○ nerfstudio: NeRF の学習・評価用フレームワーク ● 今回は nerfstudio でも提供されている InstantNGP を紹介 ● キャディでは現在これらの技術は使っていません が、使う機会が来たら面白そう 🤗
Slide 4
Slide 4 text
3D × DeepLearning の研究紹介にあたって ● Zip-NeRF: Anti-Aliased Grid-Based Neural Radiance Fields arXiv 2023 ○ mip-NeRF 360(サブボリュームアプローチ)によるアンチエイリアス ○ InstantNGP(グリッドベースアプローチ)による高速化
Slide 5
Slide 5 text
3D × DeepLearning の研究紹介にあたって ● Zip-NeRF: Anti-Aliased Grid-Based Neural Radiance Fields arXiv 2023 ○ mip-NeRF 360(サブボリュームアプローチ)によるアンチエイリアス ■ →Mip-NeRF ICCV2021輪読会スライド - Speaker Deck で一部紹介 ○ InstantNGP(グリッドベースアプローチ)による高速化 ■ →今回紹介
Slide 6
Slide 6 text
紹介論文:InstantNGP https://nvlabs.github.io/instant-ngp/
Slide 7
Slide 7 text
紹介論文:InstantNGP ● SIGGRAPH 2022 にて NVIDIA から発表 ● SDFやNeRFなど様々なレンダリングタスクに導入可能 ● 学習・推論の両方を大幅に高速化 https://nvlabs.github.io/instant-ngp/
Slide 8
Slide 8 text
グラフィックスプリミティブとは コンピュータグラフィックスの描画における基本要素のこと ● 点プリミティブ:ピクセル描画など ● 線プリミティブ:図形描画など ● 三角形プリミティブ: 3Dモデルの描画など
Slide 9
Slide 9 text
Neural Graphics Primitives(NGP) NGP:NNへのクエリに基づいたグラフィックス描画( NeRF, SDF, etc. ) https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4
Slide 10
Slide 10 text
Why using NN? https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4 ● メモリ負荷を計算負荷に置き換え ● 柔軟な入力形式 ● レンダリングは遅い ○ →工夫により高速化
Slide 11
Slide 11 text
Summary Title: InstantNGP with a Multiresolution Hash Encoding = Multiresolution Hash Encoding によるお手軽 NN グラフィックス描画
Slide 12
Slide 12 text
Summary https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4
Slide 13
Slide 13 text
Summary https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4
Slide 14
Slide 14 text
Input encoding in NeRF ● NeRF では入力位置と角度に frequency encoding を適用し NN へ入力 ○ →高周波成分を捉えられるようになり、ぼやけづらくなる https://tom94.net/data/publications/mueller22instant/mueller22instant-gtc.mp4
Slide 15
Slide 15 text
Input encoding in NeRF: Parametric encodings ● 補助的な学習可能パラメータを配置する方法も提案されている ○ 代表例:空間を分割するボクセルグリッドの頂点に特徴ベクトルを配置・学習する ■ +:位置→特徴量の推論を省略できるため、学習・推論高速化、精度向上の傾向 ■ +:グリッドを多重解像度にすることで省パラメータ化できる [2007.11571] Neural Sparse Voxel Fields より
Slide 16
Slide 16 text
Input encoding in NeRF: Parametric encodings ● 補助的な学習可能パラメータを配置する方法も提案されている ○ 代表例:空間を分割するボクセルグリッドの頂点に特徴ベクトルを配置・学習する ■ Δ :重要なのは物体表面。多くのグリッドの特徴ベクトル(≒メモリ)は無駄 [2007.11571] Neural Sparse Voxel Fields より
Slide 17
Slide 17 text
Input encoding in NeRF: Parametric encodings ● 補助的な学習可能パラメータを配置する方法も提案されている ○ 代表例:空間を分割するボクセルグリッドの頂点に特徴ベクトルを配置・学習する ■ Δ :重要なのは物体表面。多くのグリッドの特徴ベクトル(≒メモリ)は無駄 ● →特徴ベクトルを sparse に保持することで効率化可能 [2007.11571] Neural Sparse Voxel Fields より
Slide 18
Slide 18 text
Encoding によるレンダリングへの影響 ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上 ● グリッドを多重解像度化 →省パラメータ化 ● グリッドをスパース化 →省パラメータ化
Slide 19
Slide 19 text
Encoding によるレンダリングへの影響 ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上 ● グリッドを多重解像度化 →省パラメータ化 ● グリッドをスパース化 →省パラメータ化 提案 Hash table を用いて シンプル・汎用に実装
Slide 20
Slide 20 text
Encoding によるレンダリングへの影響 ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上 ● グリッドを多重解像度化 →省パラメータ化 ● グリッドをスパース化 →省パラメータ化 パラメータ数は「NN のパラメータ数+特徴ベクトルのパラメータ数」を表記 提案 Hash table を用いて シンプル・汎用に実装
Slide 21
Slide 21 text
Proposed: Multiresolution Hash Encoding ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上 ● グリッドを多重解像度化 →省パラメータ化 ● グリッドをスパース化 →省パラメータ化 提案 Hash table を用いて シンプル・汎用に実装
Slide 22
Slide 22 text
Proposed: Multiresolution Hash Encoding ● 1. 多重解像度のグリッドを導入 ○ 多様なスケールの特徴を効率よく捉える ○ 位置 x の評価時には周囲のボクセルグリッドの頂点を参照する
Slide 23
Slide 23 text
Proposed: Multiresolution Hash Encoding ● 2. Hash table からグリッド頂点に対応する特徴ベクトルを参照 ○ 頂点の位置ベクトルを hash 関数によって擬似ランダムなインデックスに置き換え
Slide 24
Slide 24 text
Proposed: Multiresolution Hash Encoding ● 2. Hash table からグリッド頂点に対応する特徴ベクトルを参照 ○ 頂点の位置ベクトルを hash 関数によって擬似ランダムなインデックスに置き換え ○ Hash table からインデックスに応じた特徴ベクトルを参照
Slide 25
Slide 25 text
Proposed: Multiresolution Hash Encoding ● 3. 位置 x の特徴ベクトルを線形補間
Slide 26
Slide 26 text
Proposed: Multiresolution Hash Encoding ● 4. 各解像度の特徴ベクトルを連結して NN ヘ入力 ○ 追加の特徴ベクトルを導入することも可能( NeRF の場合視線の角度など)
Slide 27
Slide 27 text
Proposed: Multiresolution Hash Encoding ● 1. 多重解像度のグリッドを導入 ● 2. Hash table からグリッド頂点に対応する特徴ベクトルを参照 ● 3. 位置 x の特徴ベクトルを線形補間 ● 4. 各解像度の特徴ベクトルを連結して NN ヘ入力
Slide 28
Slide 28 text
Proposed: Multiresolution Hash Encoding ● グリッドの各頂点に特徴ベクトルを配置 →学習・推論高速化、精度向上 ● グリッドを多重解像度化 →省パラメータ化 ● グリッドをスパース化 →省パラメータ化 ○ 高解像度では hash table のサイズ T <グリッド頂点数→スパース化 提案 Hash table を用いて シンプル・汎用に実装
Slide 29
Slide 29 text
Implicit hash collision resolution ● 高解像度では hash table のサイズ T <グリッド頂点数→スパース化 ○ →暗黙的にハッシュ衝突を許している ● 実際にはレンダリングへの悪影響は少ない ○ 低解像度:そもそもハッシュ衝突が少ない ○ 高解像度:hash 関数によって、衝突は空間上でほぼランダムに発生する ■ →頂点のペアが複数の解像度で衝突することはほとんどない ○ 学習時:衝突した位置の両方が描画に有用(≒物体周辺)であることは稀 ■ →hash tableの特徴ベクトルに対して、物体周辺の学習が支配的になる
Slide 30
Slide 30 text
Hash Table size affects performance / quality tradeoffs ● Hash table のサイズ T によるトレードオフ ○ Large T:高品質、学習に時間がかかる、高メモリ ○ Small T:低品質、学習高速化、省メモリ
Slide 31
Slide 31 text
Hash Table size affects performance / quality tradeoffs ● Hash table のサイズ T によるトレードオフ ○ Large T:高品質、学習に時間がかかる、高メモリ ○ Small T:低品質、学習高速化、省メモリ
Slide 32
Slide 32 text
Implementation tiny-cuda-nn フレームワークを用いて全体を実装:NVlabs/instant-ngp ● 推論・勾配計算の速度向上のために hash table は半精度で保持 ● GPU キャッシュを有効に利用するために hash table は解像度ごとに評価 ● RTX 3090 の 6 MB L2 キャッシュを踏まえて、各解像度の特徴ベクトルの次元 F = 2 とした ● その他詳細設定は論文を参照
Slide 33
Slide 33 text
Experiments ● さまざまなタスクを高速に学習、高精度にレンダリング可能
Slide 34
Slide 34 text
Experiments: Performance & Quality (NeRF) ● 既存手法よりも非常に高速に優れたレンダリングを学習可能 ● Ours: Hash は〜1 min 程度の学習で Ours: Frequency (5 min) より優れた性能 ○ → Hash table が学習高速化に貢献している
Slide 35
Slide 35 text
Experiments: Performance & Quality (SDF) ● 既存の優れた手法( NGLOD)に匹敵 ● 物体表面にハッシュ衝突によると思われるアーティファクトが発生している
Slide 36
Slide 36 text
Discussion ● ハッシュ関数の選定 ○ いくつか試した中では、本文内のものが最も優れていた ○ 将来的には辞書学習アプローチも検討できる ● ハッシュ衝突によるアーティファクト ○ 特にSDFでは、ハッシュ衝突によると思われる粒状のアーティファクトが確認された ○ → Lookup 時のフィルタリングなどによる対応が考えられる
Slide 37
Slide 37 text
まとめ・感想 ● まとめ ○ さまざまなレンダリングタスクに利用できる multiresolution hash encoding を提案した ○ tiny-cuda-nn フレームワークで全体を実装することでさらに高速化した ○ 高速な学習と優れたレンダリング性能が確認された ● 感想 ○ グリッド化やスパース化による改善を hash table によってシンプルに達成している ■ さまざまなレンダリングタスクに導入しやすい点も◯ ○ ハッシュ衝突に対する hash table サイズのチューニングが難しそう ○ 画像や 3D シーンを圧縮する技術としても今後期待したい
Slide 38
Slide 38 text
参考資料 ● 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