Wonder3D: Single Image to 3D using Cross-Domain Diffusion

Overview

task:单张图生成3D mesh

challenges:

  1. SDS从2D扩散先验中获得3D geometry信息,但是对每个shape进行优化很耗时,还有几何不一致的问题;
  2. 快速网络推理得到3D信息,质量低,缺乏3D细节。

key ideas:

  1. cross-domain diffusion model,生成多视角normal map和color image;
  2. multi-view cross-domain attention,使得多视角一致,几何和外观两个domain之间一致;
  3. geometry-aware normal fusion algorithm,从多视角2D表示中提取mesh。

2D Diffusion Models for 3D Generation

per-shape optimization: 核心是优化一个3D表示。把神经渲染生成的2D图像输入2D diffusion models或者CLIP model,计算SDS loss,用这个loss指导优化。代表作:DreamFusion, SJC(论文笔记

缺点:

  • 效率低,通常优化一个shape要几十分钟
  • multi-face problem,因为缺少显式的3D监督

one-2-3-45: 用可泛化的重建方法 SparseNeuS 直接从 zero123 生成的图片中提取3D几何,但是结果质量比较低,缺少几何细节。

3D Generative Models

基于3D表示(点云,mesh,神经场),训练3D diffusion models。

问题:缺少3D数据集,大多数工作只在有限的类别上有效,如何扩展到大的数据集?

  • 本文提出的方法采用2D diffuion models,可以利用预训练的先验,具有zero-shot的泛化能力。

Multi-view Diffusion Models

为了生成多视角一致的图像,一些工作将单视角图像的2D diffusion models扩展到多视角图像,但它们主要关注图像生成,并不适用于3D重建。

Xiang et al., Text2nerf: 估计深度图,生成不完整的新视角图像,然后补全。缺点:如果深度估计(由另外的深度估计模型完成)不准确,质量显著下降。

Viewset Diffusion, SyncDreamer, MVDream: 用attention layers实现多视角color images的一致性。缺点:color images没法像normal map一样显式地编码几何信息,重建结果纹理模糊,导致很难恢复几何细节,或者需要很大的计算开销。

  • SyncDreamer需要稠密视角进行3D重建,但是几何比较差,纹理模糊。
  • MVDream需要耗时的优化,多视角蒸馏需要1.5小时。
  • 本文提出的方法可以在2分钟内重建高质量的纹理网格。

问题定义

将3D资产的分布定义为对应的2D多视角normal maps和color images的联合分布。目标是学习一个模型$f$,能够合成对应一组相机位姿的normal maps和color images。

优点:

  1. 可以用预训练的有很强先验的2D diffusion models,可以实现zero-shot的泛化性;
  2. normal maps可以刻画出表面的波动和变化,真实的几何细节。

方法

Alt text

Consistent Multi-view Generation

和SyncDreamer, MVDream一样,各个视角之间用attention来交换信息。做法是将原来的self-attention layers扩展到全局,使不同视角间建立联系。

Cross-Domain Diffusion

如何将2D diffusion model扩展到一个以上的domain?

  • 简单的想法是对UNet的输出加4个通道,表示增加的normal domain;但问题是收敛速度慢,泛化性差;原因可能是通道增加对预训练的权重有扰动,造成模型遗忘。
  • 由于可以把联合分布因式分解为两个条件分布,也可以先训练一个diffusion model生成normal maps,然后训练另一个diffusion model以normal maps作为条件生成color images(或者反过来);但问题是two-stage framework有一定复杂性,计算开销大,而且表现会变差。
  • 最终的解决方案:domain switcher,记为$s$。$s$是一个一维向量,标记不同domain。先对$s$进行位置编码,然后和time embedding进行concat。这个操作不会明显改变预训练先验,可以快速收敛,并能稳定地泛化。
  • 为了让两个domain之间一致,加了一个cross-domain attention,让生成的几何和外观align。cross-domain attention的结构和原来的self-attention layer结构一致,在transformer block中,cross-domain attention加在cross-attention layer前。

Alt text

Textured Mesh Extraction

通过优化有向距离场(SDF),提取显式3D几何。比起mesh,SDF具有紧凑、可微的优点。但是不能直接用现有的SDF-based重建方法(例如NeuS),因为这些方法适用于真实获得的图像,而且需要稠密的输入视角。而生成视角相对稀疏,生成的normal maps和color images可能在一些像素上有一些偏差,导致优化得到畸变的几何。

geometric-aware optimization 目标函数:

其中$L{rgb}$表示MSE loss,计算渲染出的图片和生成的图片的误差;$L{mask}$表示二元交叉熵损失,计算渲染出的mask和生成的mask(用分割模型对生成的normal maps或者color images处理得到)的误差;$R_{eik}$表示eikonal惩罚项,使得SDF梯度大小是单位长度;$R_{sparse}$表示稀疏惩罚项,避免SDF的漂浮物;$R_{smooth}$表示光滑惩罚项,使SDF的梯度在3D空间中光滑。

利用SDF的可微性质,SDF的法线$\hat{g}_k$可以通过对SDF求二阶导得到。$L_{normal}$用来监督3D几何:

其中$w_k$是geometric-aware weight。由于一个3D点在不同视角下都可以被看见,就会受多个法线影响,这些法线之间必须有一致性。法线和视线方向之间角度大的会被赋予更高的权重。

另一个trick叫outlier-dropping loss。由于mask和color images存在一些不精确的地方,会在优化过程中积累,导致表面的噪声和洞。outlier-dropping loss的做法是在每个iteration中对所有采样光线的color errors降序排序,按预先设定好的百分比去除最大的errors。因为错误的预测缺乏和其他视角的一致性,在优化过程中更难被最小化,所以产生了最大的errors。

Notes on Camera «
Prev «
» Stochastic Multi-Person 3D Motion Forecasting (ICLR 2023 Spotlight)
» Next