Skip to main content

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-3Single image + relative camera から、その視点での novel view を生成
SyncDreamer複数視点を joint に生成して一貫性を高める
MVDreamMulti-view 専用に fine-tune した text-to-multi-view diffusion
Wonder3DMulti-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 LRMMulti-view を入れて 1 回で 3D を出す
MVS + mesh古典 MVS で mesh 化

数式で見る multi-view consistency

Multi-view diffusion では、同じ 3D object から得られる複数 view の画像集合 {Iv}vV\{I_v\}_{v\in\mathcal{V}} を同時に生成します。理想的には、ある 3D 表現 S\mathbf{S} が存在して、すべての view が同じ S\mathbf{S} の rendering として説明できる必要があります。

IvR(S,Kv,Tv),vVI_v \approx R(\mathbf{S},\mathbf{K}_v,\mathbf{T}_v),\qquad v\in\mathcal{V}

この式の気持ちは、「それぞれの画像が単独で良いだけではなく、同じ立体を別角度から見たものとして矛盾しないことが重要だ」というものです。

Diffusion model の中では、view token 間で attention を共有したり、camera pose embedding を入れたりして、次のような conditional distribution を学習します。

pθ(I1:Vy,T1:V)p_\theta(I_{1:V}\mid y,\mathbf{T}_{1:V})

ここで、yy は prompt、T1:V\mathbf{T}_{1:V} は view pose の集合です。Multi-view 生成の難しさは、各 view の画質と、view 間の幾何整合性を同時に満たす必要がある点にあります。

関連ページ

主なソース