Slide 1

Slide 1 text

CAT4D: Create Anything in 4D with Multi-View Video Diffusion Models Rundi Wu, Ruiqi Gao, Ben Poole, Alex Trevithick, Changxi Zheng, Jonathan T. Barron, Aleksander Holynski (Google DeepMind, Columbia University, UC San Diego) https://cat-4d.github.io/ 読み手 小林颯介 (Preferred Networks) 2024/12/21 第1回Spatial AI勉強会 (動画は各論文のデモページで参照してください) (特に注釈がないとき、図は該当する論文・デモページからの引用です)

Slide 2

Slide 2 text

2 - 2016〜 Preferred Networks, Inc. リサーチャー [NLP→Vision→3D/4D] - PFN 3D Scan, 4D Scan, Virtual Production, (採用もインターンもあるよ) - 2024〜 東北大学言語AI研究センター 特任准教授 (客員) - e.g., - Decomposing NeRF for Editing via Feature Field Distillation, NeurIPS 2022 言語や画像理解の2D feature mapを3D復元に焼き付けることで、便利なクエリで3D理解や分解とかする - Blowin' in the Wild: バラバラに撮影された画像からの4D Gaussian Splattingの開発 PFN blog (今夏インターン 慶應M1香山さん成果) 動画を使わずに4D復元する話 自己紹介 小林颯介 Sosuke Kobayashi

Slide 3

Slide 3 text

3 3D: 3次元空間。さまざまな視点で一貫性がある + 1D: 時間。自然な動きや変化がある                  PFN 4D Scan - pfn3d.com/4d 4Dってなに? =

Slide 4

Slide 4 text

4 3D や 4D の表現形式はなに? - 今回は NeRF (Neural Radiance Field) や 3DGS (3D Gaussian Splatting) - 説明は……省略! ざっくり - ある3D空間のシーン情報を保持するモデル - 入力: カメラの位置・姿勢・レンズ特性 - 出力: そこから見える画像 - 訓練で10-1000枚の観測画像の再現を担保 - 4D は? - 時間のスカラー変数 t も合わせて入力にして……画像を出力する関数 - たとえば 内部表現の一部 (e.g., 座標空間, ガウシアン位置) を適当な関数 f(t) で変化させる NeRF [Mildenhall+20] [Luiten+23]

Slide 5

Slide 5 text

5 Diffusion Model ってなに? 説明……省略! ざっくり - データセットさえあれば良い生成が学習できる - 漸近的な複数回の推論ステップでデータ (今回は画像) の生成を行うモデル - 入力: ノイズの画像 と 条件付け (e.g., テキスト、観測画像、カメラ位置) - 出力: きれいな画像 - そこそこ大きなニューラルネットワーク (U-Netやattentionもりもり) [Kreis+22]

Slide 6

Slide 6 text

6 ニューラル3D生成の流派 - 3D表現を 直接 生成する - e.g., NeRF tri-plane、3DGS、点群、ボクセル、メッシュ、CAD をTransformer一発やdiffusionで生成 - △ 直観的だけど、ドメインが狭かったり解像感が低かったり - 大規模高品質3D/多視点データセットの欠如、アーキテクチャの非効率性、非汎用性 - 画像生成モデルを使って、3D表現を復元で求める - ◯ 優秀なテキスト条件付け画像生成モデルを転用でき、多様なクエリで生成できる - 3D復元の最適化において 画像生成モデルから勾配を流す - ◯ じわじわ一貫性を保ちつつ最適化できる - ✕ 遅い。生成モデルを繰り返し実行 DreamFusion [Poole+22] - (3D復元の最適化において レンダリング結果の修正版を生成して教師にする) - △ まだ遅い ReconFusion [Wu+23], Instruct-NeRF2NeRF [Haque+23], (IM-3D [Melas-Kyriazi+24]) - 最初に多視点画像を一回生成して それで素朴に3D復元する ←今回はこれ - ◯ 速い。ワークフローもシンプル - △ でも一貫性のある多視点画像生成は難しい - (多視点画像を一回生成して そこから3D表現を生成する というのもある; LGM [Tang+24])

Slide 7

Slide 7 text

7 CAT3D: Create Anything in 3D with Multi-View Diffusion Models CAT4D: Create Anything in 4D with Multi-View Video Diffusion Models 24/5/16 -> 24/11/27 まずCAT3Dの話をします 〜おことわり〜 関連論文が同時多発的 かつ 正当な比較がサボられがち困難 かつ 参加者も多様 というのもあり 細かい差分や新規性をオタク的に伝えるより一つのワークフロー例として紹介しようと思います 前作から

Slide 8

Slide 8 text

(動画は各論文のデモページで参照してください) CAT43D: Create AnyThing in 43D with Multi-View Video Diffusion Models Ruiqi Gao, Aleksander Holynski, Philipp Henzler, Arthur Brussee, Ricardo Martin-Brualla, Pratul Srinivasan, Jonathan T. Barron, Ben Poole (Google DeepMind, Google Research) NeurIPS 2024 https://cat3d.github.io/

Slide 9

Slide 9 text

9 - 入力: 画像1枚  or  数枚の姿勢付き画像 - 出力 (中間): たくさんの姿勢付き画像 - 出力 (最終): その画像にフィットさせたNeRF 生成のながれ (※16×A100で80枚生成)

Slide 10

Slide 10 text

10 生成例 - text-to-image 1枚から3D生成 - 撮影画像3枚から3D生成 - 普通は不良設定すぎて破綻する (下段はベースラインと先行手法) CAT3D そのdepth
 
 
 
 ナイーブ復元 先行手法
 ReconFusion


Slide 11

Slide 11 text

11 Multi-view Diffusion Model

Slide 12

Slide 12 text

12 Multi-view Diffusion Model まず画像生成モデルを訓練しておく - 今回は Latent Diffusion [Rombach+21] (生画像空間でなく、VAEでのlatent map空間で生成) - 大規模テキスト画像ペアで広い知識を獲得 その初期化から多視点へ拡張 + 中規模訓練する (たとえば、3枚入れて5枚生成) - 複数画像を並列streamで処理するようにして 画像間の attention も追加 - 画像ごとに視点を表す “raymap” も追加 - 各 ray ベクトル (カメラ位置と向き) を sinusoidal encoding して latent に結合 - 条件付けの観測画像は固定 - 新規視点はノイズから生成

Slide 13

Slide 13 text

13 多視点画像生成時のカメラ位置姿勢 の生成 - 良い復元のためには どの視点の画像を生成して復元に使うかも重要 - とはいえ、ヒューリスティクスで 各データセット, 実験ごとに設計 - 網羅的、高密度、めりこまない、正常

Slide 14

Slide 14 text

14 大量の多視点画像の生成 - モデルは固定枚数 (8枚) の入出力を想定して訓練 - でも一貫した多視点を大量に生成したい - single-image設定: 80枚 - few-view設定: 500〜1000枚 - クラスタリングして代表的な視点を一括生成 - その後はそれを観測に加えて近傍を生成していく

Slide 15

Slide 15 text

15 NeRFのフィッティングの工夫 - 観測済み視点に近い視点の画像ほどロスを強く重み付ける - 観測自体やその付近ならば品質や一貫性が安定しているはず という直感 - RGBのL1, SSIM誤差だけでなく LPIPSを強めに加える - CNNの特徴空間での誤差 - 高周波成分やlow-levelな不一致に対して寛容になる - 小さめのZip-NeRF [Barron+23] Multi-view Diffusion Model の訓練 - 単一画像生成は大規模訓練されたGoogle内部のモデル - そこからの多視点訓練は既存データセットの Objaverse, CO3D, RealEstate10k, MVImgNet で訓練

Slide 16

Slide 16 text

16 細部は省略 - few-shot reconstruction - 3〜9枚の撮影画像の入力から3D復元 - 既存手法より高精度かつ高速 (数分 v.s. 1時間) 実験・評価 CAT3D そのdepth
 
 
 
 ナイーブ復元 先行手法
 Zip-NeRF ReconFusion


Slide 17

Slide 17 text

17 - single image to 3D - 提案手法は 高速・高品質・シーン生成可能の三拍子が揃う - なお、同時期発表の IM-3D [Melas-Kyriazi+24] より同等品質で少し速い - IM-3D は動画生成モデルをfinetuning & 何度か修正的生成 & 単一物体 実験・評価 既存手法1        提案手法          既存手法2        提案手法

Slide 18

Slide 18 text

18 CAT3D: Create Anything in 3D with Multi-View Diffusion Models CAT4D: Create Anything in 4D with Multi-View Video Diffusion Models 差分 - 入力: 画像 → 動画 (= 時刻付き画像集合) - 生成: 多視点画像→ 多視点“動画” - 最適化表現: NeRF → “4”DGS [Wu+23] - 訓練データセットの工夫 と 大量のフレームの生成法 が実質的なメインコンテンツ やっと今作 CAT4D https://cat-4d.github.io/

Slide 19

Slide 19 text

19 Multi-view \Video/ Diffusion Model - ほぼCAT3Dのモデルをそのまま使える - モデルの初期化は CAT3D のものをコピー - 固定長 (3入力13出力 とか 9入力8出力 とかで訓練) - 変更点 - 時刻 t を sinusoidal encoding+MLP で変換したものをU-Netへ 以上

Slide 20

Slide 20 text

20 Multi-view \Video/ データセット - 動いているシーンの多視点撮影はコストが高く、データセットはほとんどない - CGならモーション付きアセットで少しは作れる - (人間系だと数千なら研究用データあるものの今回は未使用) - いろんな条件のデータを混ぜて使う - 生成モデルを使って擬似データも作る。不完全だけど有効 動くシーン × 固定視点 動画 そのまま 静止物体×多視点 を拡張: 動画生成モデルで あるフレームについて カメラ固定のまま物体を動かすような生成 動くシーン×固定視点 を拡張: CAT3Dで あるフレームの別視点を生成 ただの画像 静止物体 ×多視点 CO3D例

Slide 21

Slide 21 text

21 - 固定長のNフレーム出力モデル v.s. たくさん出力したい 問題 再 - Lフレーム単眼動画から多視点 {1〜K(

Slide 22

Slide 22 text

22 Multi-view \Video/ 生成法 - Multi-view sampling = 特定時刻の多視点生成 (CAT3D風) - 入力: 連続Nフレーム + 特定時刻の1フレーム - 循環sliding windowでN視点ずつ生成し それぞれピクセル中央値で統合 - それを各時刻について実行 - Temporal sampling = 特定視点での多時刻生成 (動画生成風) - 入力: 連続Nフレーム + 特定視点の1フレーム - 循環sliding windowでN時刻ずつ生成し統合 - それを各視点について実行 - Alternating strategy - 両者を交互に修正的生成で実行して時空間で一貫させる - M生成→大ノイズ→T生成→小ノイズ→M生成 で完成 K=4, N=3 の例 L=4, N=3 の例 - K視点作ったあとはまた密にさらに生成 - 静止した動画ではまずt=0の K視点を決め打ちで生成

Slide 23

Slide 23 text

23 結果: text-to-video からの生成 - 固定視点生成動画 to 4D

Slide 24

Slide 24 text

24 結果: 視点と時刻の分離性 - 3フレームのみから 入力 既存(4DiM) CAT4D GT - 固定視点 時刻変化 - 固定時刻 視点変化

Slide 25

Slide 25 text

25 結果: 観測数の割に動きが複雑だとまだまだ - 3フレームのみから 入力     固定視点 時刻変化      視点変化 固定時刻 両方変化

Slide 26

Slide 26 text

26 結果: 職人芸の単眼4Dとの比較 - 単眼動画から 既存( 4DGS Shape-of-Motion MoSca ) CAT4D GT 入力 勝っている例↑ 普通に負ける例          →

Slide 27

Slide 27 text

27 CAT3/4D まとめ - 画像生成diffusionモデルを多視点, 多時刻に拡張してfinetuning - 多数フレーム生成ではアンサンブルや交互最適化風にして一貫性を改善 - LPIPSやロス重み付けでやわらかく復元 - 3D, 4Dともに十分に高速かつ品質が高い生成が行えるようになってきている - シンプルに統一された枠組みで テキスト/1枚/数枚-to-3D/4D をできる - まだミスもあるものの、生成モデルをスケールさせて性能上がればきっと…… - World Model系と関連・並走しつつ盛り上がっている - 同時多発的先行/同時研究の例 - [2405.20674] 4Diffusion: Multi-view Video Diffusion Model for 4D Generation - [2406.08659] Vivid-ZOO: Multi-View Video Generation with Diffusion Model - [2407.07860] Controlling Space and Time with Diffusion Models - [2407.11398] Animate3D: Animating Any 3D Model with Multi-view Video Diffusion - [2407.17470] SV4D: Dynamic 3D Content Generation with Multi-Frame and Multi-View Consistency - [2410.10774] Cavia: Camera-controllable Multi-view Video Diffusion with View-Integrated Attention - [2412.04462] 4Real-Video: Learning Generalizable Photo-Realistic 4D Video Diffusion - Genie 2: A large-scale foundation world model - Google DeepMind - Meta: Navigation World Models - World Labs: Generating Worlds - Midjourney World Models and V7: What You Need to Know