Multi-View Diffusion for 3D
Multi-View Diffusion は、3D を直接生成する代わりに、複数 view の画像を一貫性をもって生成し、それを 3D Reconstruction で 3D 化する方向です。SDS-based optimization と native 3D generation の中間的な立ち位置です。
なぜ multi-view なのか
2D diffusion は強力ですが、view consistency を保証しません。1 枚の image から 3D を作るには、視点を変えた image を複数枚揃え、それらを multi-view stereo / NeRF / 3DGS に通す必要があります。
代表的 model
| Model | 一言で |
|---|---|
| Zero-1-to-3 | Single image + relative camera から、その視点での novel view を生成 |
| SyncDreamer | 複数視点を joint に生成して一貫性を高める |
| MVDream | Multi-view 専用に fine-tune した text-to-multi-view diffusion |
| Wonder3D | Multi-view image + normal map を joint 生成 |
| Zero123++ | Zero-1-to-3 を改良し、固定姿勢で複数 view を 1 回で生成 |
なぜ consistency が難しいのか
異なる視点で同じ object を描くには、
- 同じ shape / texture を保つ
- 自己遮蔽が物理的に整合する
- 光源と影が consistent
- 細部 (顔、文字、ロゴなど) が崩れない
を満たす必要があります。2D diffusion 単体ではこれらが保証されないため、joint denoising、3D-aware attention、camera embedding などの工夫が入ります。
後段の 3D 化
Multi-view image が揃ったら、次のような後段で 3D にします。
| 後段 | 内容 |
|---|---|
| Optimization-based (NeRF / 3DGS) | Multi-view image から NeRF / 3DGS を最適化 |
| Feed-forward LRM | Multi-view を入れて 1 回で 3D を出す |
| MVS + mesh | 古典 MVS で mesh 化 |
数式で見る multi-view consistency
Multi-view diffusion では、同じ 3D object から得られる複数 view の画像集合 を同時に生成します。理想的には、ある 3D 表現 が存在して、すべての view が同じ の rendering として説明できる必要があります。
この式の気持ちは、「それぞれの画像が単独で良いだけではなく、同じ立体を別角度から見たものとして矛盾しないことが重要だ」というものです。
Diffusion model の中では、view token 間で attention を共有したり、camera pose embedding を入れたりして、次のような conditional distribution を学習します。
ここで、 は prompt、 は view pose の集合です。Multi-view 生成の難しさは、各 view の画質と、view 間の幾何整合性を同時に満たす必要がある点にあります。
関連ページ
主なソース
- Zero-1-to-3: https://arxiv.org/abs/2303.11328
- MVDream: https://arxiv.org/abs/2308.16512
- SyncDreamer: https://arxiv.org/abs/2309.03453
- Wonder3D: https://arxiv.org/abs/2310.15008
- Zero123++: https://arxiv.org/abs/2310.15110