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