简介
主页:https://research.nvidia.com/labs/dir/magic3d/
DreamFusion 实现了文本指导2D扩散模型生成3D场景,但是其有以下两个缺点:
- 对NeRF的优化极其缓慢;
- 对NeRF的图像空间监督分辨率低,导致3D模型质量低,处理时间长
论文为此提出两阶段优化框架
- 使用低分辨率扩散先验和稀疏三维哈希网格结构来获得一个粗糙模型
- 使用粗表示作为初始化,进一步优化了一个纹理3D网格模型,该模型具有高效的可微分渲染器与高分辨率潜在扩散模型相互作用
Magic3D在40分钟内创建高质量的3D网格模型,比DreamFusion快2倍(据报道平均需要1.5小时),同时还实现了更高的分辨率
Magic3D合成3D内容的分辨率比DreamFusion高8倍,速度也比DreamFusion快2倍,Magic3D在40分钟内创建高质量的3D网格模型,DreamFusion平均需要1.5小时。合成的3D内容被用户明显更喜欢(61.7%)。
Magic3D将文本到图像模型开发的各种图像编辑技术扩展到3D对象编辑
实现流程
以从粗到细的方式从输入文本提示生成高分辨率的3D内容。
在第一阶段,利用低分辨率扩散先验并优化神经场表示(颜色、密度和正常场)来获得粗模型。
进一步从粗模型的密度场和颜色场中微分提取纹理三维网格。
然后用高分辨率潜在扩散模型对其进行微调。
经过优化后,模型生成了具有详细纹理的高质量3D网格。
Coarse-to-fine Diffusion Priors
Magic3D以粗到细的方式使用两种不同的扩散先验来生成高分辨率的几何和纹理
第一阶段,使用eDiff-I中描述的基础扩散模型,它类似于DreamFusion中使用的Imagen的基础扩散模型,这种扩散先验被用于通过在低分辨率64 × 64的渲染图像上定义的损失来计算场景模型的梯度
第二阶段,使用潜在扩散模型(LDM),允许梯度反向传播到高分辨率512 × 512的渲染图像,实验中选择使用公开的stable diffusion model。尽管生成了高分辨率的图像,但LDM的计算是可控的,因为扩散先验作用于分辨率为64 × 64的潜在
z
t
z_t
zt
计算时间的增加主要来自于计算
∂
x
/
∂
θ
∂_x/∂_θ
∂x/∂θ (高分辨率渲染图像的梯度)和
∂
z
/
∂
x
∂_z/∂_x
∂z/∂x (LDM中编码器的梯度)
Scene Models
在粗分辨率和细分辨率下为两种不同的扩散先验提供两种不同的3D场景表示,以适应为输入高分辨率先验而增加的渲染图像分辨率
Neural fields as coarse scene models
初始粗糙阶段需要从头找到几何和纹理,需要适应3D几何结构中的复杂拓扑变化和来自2D监控信号的深度模糊性,因此采用了Instant NGP实现SDF建模
Textured meshes as fine scene models
在精细优化阶段,需要能够容纳非常高分辨率的渲染图像,以使用高分辨率扩散先验来微调我们的场景模型
可以继续从初始粗糙的优化阶段的场景表示(神经场),因为模型的权重可以直接延续。
虽然这种策略在某种程度上可以工作,但在合理的内存限制和计算预算下,它很难呈现非常高分辨率的图像(例如,512 × 512)。
论文采用纹理化的三维网格作为场景表示进行精细阶段的优化
与神经场的体渲染相比,具有可微栅格化的纹理网格渲染可以在非常高的分辨率下高效执行,使网格成为高分辨率优化阶段的合适选择
使用粗阶段的神经场作为网格几何的初始化,也可以避免学习网格中较大拓扑变化的困难
具体实现如下:
使用可变形的四面体网格 ( V T , T ) (V_T, T) (VT,T) 表示3D形状,其中 V T V_T VT是网格T中的顶点,每个顶点 v i ∈ V T ⊂ R 3 v_i∈V_T⊂R^3 vi∈VT⊂R3 包含有符号距离场(SDF)值 s i ∈ R s_i∈R si∈R 和顶点从其初始正则坐标的变形 ∆ v i ∈ R 3 ∆v_i∈R^3 ∆vi∈R3。
利用可微marching tetrahedra算法从SDF中提取曲面网格,对于纹理,使用神经颜色场作为体积纹理表示
Coarse-to-fine Optimization
首先在粗神经场表示上操作,然后是高分辨率纹理网格
使用MLP来预测法线,而不是从密度差来估计法线,这并不违反几何属性,因为使用的是体绘制而不是表面绘制,处于连续位置的粒子的方向不必指向水平集表面,有助于通过避免使用有限差分,显著降低优化粗模型的计算成本,使用真实的表面绘制模型时,精确的法向量可以在精细优化阶段得到
和DreamFusion相似,使用环境映射MLP对背景进行建模,它将RGB颜色预测为射线方向的函数,稀疏表示模型不像Mip-NeRF 360那样支持场景重参数化,因此优化有一种“欺骗”的倾向,即使用背景环境地图学习对象的本质,对环境地图使用一个微小的MLP(隐藏维度大小为16),并将学习率降低10倍,以使模型更专注于神经场几何
为了从神经场初始化中优化网格,通过用非零常数减去(粗)密度场,将其转换为SDF,从而得到初始 s i s_i si,直接使用从粗粒度阶段优化后的颜色场初始化体纹理场
优化过程,使用可微光栅化器将提取的表面网格渲染成高分辨率图像,使用高分辨率SDS梯度(Eq. 2)通过反向传播对每个顶点 v i v_i vi 进行 s i s_i si 和 ∆ v i ∆v_i ∆vi 优化,将网格渲染为图像时,还跟踪每个对应像素投影的3D坐标,用于查询对应纹理字段中的颜色,进行联合优化
在渲染网格时,增加焦距以放大物体细节,这是恢复高频细节的关键一步。保持粗糙优化阶段的相同预训练环境映射,并使用可微分抗锯齿将渲染的背景与渲染的前景对象合成.
为了鼓励表面的平滑,进一步正则化网格上相邻面之间的角度差异。这使得即使在高方差的监督信号(如SDS梯度 ∇ θ L S D S ∇_θL_{SDS} ∇θLSDS)下也能获得良好的几何形状
实验
在DreamFusion提供的397 text prompts下进行训练
Speed evaluation
粗阶段沿着射线训练5000次迭代,使用1024个样本(随后由稀疏八叉树过滤),批大小为32,总运行时间约为15分钟(超过8次/秒,由于稀疏性差异而可变)。精细阶段训练3000次迭代,批大小为32次,总运行时间为25分钟(2次/秒)。两个运行时间加起来都是40分钟。所有运行时间都在8个NVIDIA A100 gpu上测量。
Qualitative comparisons
从质量上讲,模型在几何和纹理方面都获得了更高的3D质量。模型可以生成冰淇淋甜筒上的糖果、高度精细的寿司式汽车、生动的草莓和鸟类。还注意到,生成的3D模型可以直接导入并在标准图形软件中可视化。
User studies
进行用户研究,以评估基于亚马逊土耳其网用户偏好的不同方法。向用户并排显示两个视频,使用相同的文本提示,由两种不同的算法从规范视图渲染。要求用户选择一个更真实和详细的。每个提示由3个不同的用户评估,结果是1191个成对比较。用户更喜欢Magic3D生成的3D模型,61.7%的用户认为论文结果质量更高。
第一阶段为什么不使用LDM加速
如果在第一阶段优化设置中,用高分辨率LDM优化了场景模型。实验发现,三维网格作为场景模型,如果从头优化,无法生成高质量的结果。这使得内存高效的稀疏3D表示成为场景模型的理想候选人。然而,渲染512 × 512的图像仍然占用太多内存,无法适应现代gpu。因此,渲染来自场景模型的低分辨率图像,并将其上采样到512 × 512作为LDM的输入。发现它生成的物体形状更糟糕。下图给出了两个场景渲染分辨率分别为64 × 64和256 × 256的例子(上排)。虽然它产生毛茸茸的细节,但形状比粗糙的模型更糟糕。
第二阶段可以用NeRF作为场景表示吗
是的。虽然从头开始优化NeRF并不能很好地工作,但可以遵循从粗到细的框架,用NeRF代替第二阶段的场景模型。在下图的右下方,展示了用左边的粗模型初始化的精细NeRF模型,并用256 × 256渲染图像进行微调的结果。两阶段方法在初始模型中保留了良好的几何形状,并添加了更多的细节,显示出优于单阶段的质量
Coarse models vs. fine models
下图提供了比较粗模型和细模型的更直观的结果。尝试了NeRF和网格场景模型,并根据上面的粗模型对它们进行微调。在NeRF和网格模型上都看到了显著的质量改进,这表明粗到细方法适用于一般场景模型。
Controllable 3D Generation
用图像影响文本到3d模型的生成
Personalized text-to-3D
DreamBooth描述了一种方法,通过对一个主题的几张图像微调预先训练的模型,来个性化文本到图像扩散模型。经过微调的模型可以学习将主题绑定到一个唯一的标识符字符串(记为[V]),并在文本提示中包含[V]时生成主题的图像。在文本到3D生成的上下文中,希望生成主题的3D模型。这可以通过首先使用DreamBooth方法微调扩散先验模型来实现,然后使用带有[V]标识符的微调扩散先验作为条件文本提示的一部分,在优化3D模型时提供学习信号。
为了证明DreamBooth在论文框架中的适用性,收集了一只猫的11张图像和一只狗的4张图像。微调eDiff-I和LDM,将文本标识符[V]绑定到给定的主题。然后在文本提示中用[V]对三维模型进行优化。使用批处理大小为1进行所有微调。对于eDiff-I,使用学习率为1 × 10−5的Adam优化器进行1500次迭代;对于LDM,对800次迭代的学习率进行微调,学习率为1 × 10−6。下图显示了个性化文本到3D结果:能够成功地修改3D模型,在给定的输入图像中保留主题。
Style-guided text-to-3D
还探索了用多模态调节控制3D生成。eDiff-I扩散优先的设计使它可以在执行文本到图像生成时以参考图像为条件。这样的图像调理设计可以很容易地改变生成输出的风格。然而,发现直接在计算SDS梯度时将样式图像作为模型的输入,可能会导致一个糟糕的3D模型,本质上是对输入图像的过拟合。假设在优化过程中,图像的调节信号明显强于文本提示。为了更好地平衡图像和文本条件调节之间的制导强度,扩展了模型的无分类器制导方案,并计算最终的
ϵ
ϕ
~
(
x
t
;
y
t
e
x
t
,
y
i
m
a
g
e
,
t
)
\tilde{\epsilon_\phi}(x_t;y_{text},y_{image},t)
ϵϕ~(xt;ytext,yimage,t)
其中
y
t
e
x
t
y_{text}
ytext 和
y
i
m
a
g
e
y_{image}
yimage 分别是文本和图像调节,
ω
t
e
x
t
ω_{text}
ωtext 和
ω
j
o
i
n
t
ω_{joint}
ωjoint 分别是文本和文本-图像联合调节的指导权重。注意,对于
ω
j
o
i
n
t
ω_{joint}
ωjoint = 0,该方案仅在文本条件方面等效于标准的分类器自由引导。
下图显示了样式引导的文本到3d生成结果。在优化3D模型时,将参考图像提供给eDiff-I模型。设置
ω
t
e
x
t
ω_{text}
ωtext,
ω
j
o
i
n
t
ω_{joint}
ωjoint = 50,50或40,60,只在t < 0.5时应用图像引导。没有为这个实验提供高分辨率的结果,因为LDM不支持参考图像调理。
Prompt-based editing through fine-tuning
控制生成的3D内容的另一种方法是使用新的提示符微调学习的粗模型。基于提示的编辑包括三个阶段。
- 用基本提示符训练一个粗糙模型。
- 修改基本提示符,并使用LDM对粗模型进行微调。这个阶段为下一步提供了一个良好初始化的NeRF模型。直接在新提示符上应用网格优化将生成非常详细的纹理,但只能轻微地变形几何。
- 使用修改后的文本提示对网格进行优化。基于提示的编辑可以修改形状的纹理或根据文本转换几何和纹理。
生成的场景模型保留了分层和整体结构。这样的编辑功能使得Magic3D的3D内容创作更加可控。在下图中,展示了用“兔子”和“松鼠”的基本提示训练的两个粗糙的NeRF模型。修改基本提示,微调NeRF模型在高分辨率和优化网格。结果表明,可以根据提示调整场景模型,例如,将“小兔子”改为“彩色玻璃兔子”或“金属兔子”会得到相似的几何形状,但纹理不同。文章来源:https://www.toymoban.com/news/detail-501839.html
Conclusion
提出Magic3D,一个快速和高质量的文本到3d生成框架。从高效的场景模型和高分辨率扩散先验中受益于从粗到细的方法。特别是3D网格模型在图像分辨率下缩放良好,并在不牺牲速度的情况下享受潜在扩散模型带来的更高分辨率监督的好处。从一个文本提示到一个可以在图形引擎中使用的高质量3D网格模型需要40分钟。通过广泛的用户研究和定性比较,发现与DreamFusion相比,Magic3D更受评分者的青睐(61.7%),同时享受2倍的速度提升。最后,提出了一套在3D生成中更好地控制样式和内容的工具。文章来源地址https://www.toymoban.com/news/detail-501839.html
到了这里,关于85、Magic3D: High-Resolution Text-to-3D Content Creation的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!