Title | Rodin: A Generative Model for Sculpting 3D Digital Avatars Using Diffusion |
---|---|
Author | Tengfei Wang1† Bo Zhang2 Ting Zhang2 Shuyang Gu2 Jianmin Bao2 |
Conf/Jour | arXiv preprint |
Year | 2022 |
Project | RODIN Diffusion (microsoft.com) |
Paper | Rodin: A Generative Model for Sculpting 3D Digital Avatars Using Diffusion (readpaper.com) |
Abstract
本文提出了一种利用扩散模型自动生成以神经辐射场表示的三维数字化身的三维生成模型。生成这种虚拟形象的一个重大挑战是,3D 中的内存和处理成本令人望而却步,无法生成高质量虚拟形象所需的丰富细节。为了解决这个问题,我们提出了推出扩散网络(Rodin),它将神经辐射场表示为多个 2D 特征图,并将这些地图推出到单个 2D 特征平面中,我们在其中执行 3d 感知扩散。Rodin 模型在保证三维扩散完整性的同时,利用三维感知卷积,在二维特征平面中根据原始关系处理投影特征,从而提高了计算效率。我们还使用潜在条件反射来协调全局一致性的特征生成,从而产生高保真的虚拟形象,并使其基于文本提示进行语义编辑。最后,我们使用层次合成来进一步增强细节。与现有的生成技术相比,我们的模型生成的 3D 头像效果更好。我们可以生成具有逼真发型和胡须等面部毛发的高度详细的化身。我们还演示了从图像或文本生成 3D 头像以及文本引导的可编辑性。
Method
与之前从 2D 图像集合中学习 3D 感知生成的方法不同,我们的目标是使用来自 Blender 合成管道的多视图渲染来学习 3D 角色生成[69]。而不是将同一主题的多视图图像作为单独的训练样本,我们拟合每个头像的体积神经表示,用于解释从不同角度观察到的所有结果。然后,我们使用扩散模型来表征这些 3D 实例的分布。我们基于扩散的 3D 生成是一个分层过程-我们首先利用扩散模型生成粗糙的几何形状,然后是扩散上采样器进行细节合成。如图 2 所示,整个 3D 肖像生成包括多个训练阶段,我们将在下面的小节中详细介绍。
Robust 3D Representation Fitting
鲁棒的 3D 表示:
- 适合生成网络处理的显式表示
- 紧凑的表示,这是高效的的内存利用
- 表示可以快速拟合,原始 NeRF 那样耗时数小时的优化将无法生成生成建模所需的大量 3D 训练数据。
三维体被分解成三个轴向的正交特征平面
每个特征平面的空间分辨率为 H×W,通道数为 c。与体素网格相比,三平面表示在不牺牲表达性的情况下提供了相当小的内存占用。因此,丰富的三维信息被显式地记忆在三平面特征中,可以通过将三维点
轻量级 MLP 解码器
对三平面特征和 MLP 解码器进行了优化,使得神经辐射场的渲染与给定主题的多视图图像
虽然之前的每个场景重建主要关注拟合质量,但我们的 3D 拟合程序也应该考虑生成目的的几个关键方面。
- 首先,不同主体的三平面特征必须严格处于同一域。为了实现这一点,我们在拟合不同的肖像时采用了一个共享的 MLP 解码器,从而隐式地将三平面特征推到解码器可识别的共享潜在空间。
- 其次,MLP 解码器必须具有一定程度的鲁棒性。也就是说,解码器应该能够容忍三面特征的轻微扰动,因此即使三面特征不完全生成,仍然可以获得可信的结果。
- 更重要的是,解码器应该对不同的三平面尺寸具有鲁棒性,因为分层 3D 生成是在多分辨率三平面特征上训练的。如图 3 所示,当单独拟合 256 × 256 三平面时,其 64 × 64 分辨率变体无法有效呈现。为了解决这个问题,我们在拟合过程中随机缩放三平面,这有助于通过共享解码器同时导出多分辨率三平面特征。
Latent Conditioned 3D Diffusion Model
现在3D 角色生成被简化为学习三平面特征的分布,即
在较高的层次上,扩散模型通过逐步反转马尔科夫正演过程产生 y。从
在实践中,我们的扩散模型训练也共同优化了 41 中提出的变分下界损失
我们首先训练一个基本扩散模型来生成粗糙的三平面,例如,在 64 × 64 分辨率下。
一种直接的方法是在我们的三平面生成中采用最先进的基于图像的扩散模型中使用的 2D 网络结构。具体而言,我们可以将通道维度中的三平面特征如[9]中所示进行串联,形成
如图 4(a)所示,可以直观地将三平面特征视为神经体积在正面、底部和侧面的投影。因此,在 CNN 处理中,这些正交平面的通道级联是有问题的,因为这些平面在空间上没有对齐。为了更好地处理三平面表示,我们做了以下努力:
3D-aware convolution
使用 CNN 处理按通道拼接的三平面会导致在3D 方面混合理论上未校正的特征。解决这个问题的一个简单而有效的方法是在空间上展开三平面特征。如图4(b)所示,我们将三平面特征水平连接,得到
为了更好地处理三平面特征,我们需要一个在三平面上执行的有效的 3D 算子,而不是将其视为普通的 2D 输入。为了实现这一点,我们提出了3D 感知卷积来有效地处理三平面特征,同时尊重它们的 3D 关系。在某一特征平面上的一个点实际上对应着体中的一条轴向三维直线,在其他平面上也有两条对应的直线投影,如图 4(A)所示。这些相应位置的特征本质上描述了相同的 3D 原语,应该同步学习。然而,当使用平面二维卷积进行三平面处理时,这种三维关系被忽略了。因此,我们的3D 感知卷积通过将每个平面的特征与其他平面的相应行/列相关联,明确地引入了这种 3D 感应偏置。通过这种方式,我们实现了 2D cnn 的 3D 处理能力。这种 3D 感知卷积应用于三平面表示,实际上是一种简化 3D 卷积的通用方法,以前在建模高分辨率 3D 体积时计算成本太高。
3d 感知卷积如图4(b)所示。理想情况下,
Latent conditioning.
我们进一步提出学习一个潜在向量来协调三平面生成。如图2所示,我们另外训练了一个图像编码器
潜在条件反射不仅可以提高生成质量,还可以提供一个解纠缠的潜在空间,从而可以对生成的结果进行语义编辑。为了实现更好的可编辑性,我们采用了与文本提示共享潜在空间的冻结 CLIP 图像编码器[48]。我们将展示学习模型如何产生可控的文本引导生成结果。
潜在条件反射的另一个显著优点是它允许无分类器的引导,这是一种通常用于提高条件生成中的采样质量的技术。在训练扩散模型时,我们以20%的概率随机将潜在嵌入归零,从而使扩散解码器适应无条件生成。在推理过程中,我们可以根据
- 其中
分别为条件预测和无条件预测,λ > 0 为引导强度。
因此,我们的潜在条件基础模型既支持无条件生成,也支持用于肖像反演的条件生成。为了考虑无条件采样期间的完全多样性,我们额外训练了一个扩散模型来模拟潜在 z 的分布,而潜在
Diffusion Tri-plane Upsampler
为了生成高保真的3D 结构,我们进一步训练扩散超分辨率(SR)模型,将三平面分辨率从64×64提高到256×256。在这个阶段,扩散上采样器的条件是低分辨率(LR)三平面
在之前的级联图像生成工作之后,我们应用条件增强来减少基本模型输出和 LR 条件输入之间的域间隙,用于 SR 训练。我们通过随机下采样、高斯模糊和高斯噪声的组合对三平面增强进行了仔细的调整,使渲染增强的 LR 三平面尽可能地与基本渲染输出相似。
尽管如此,我们发现与地面真实较低 L2距离的三平面恢复不一定对应于令人满意的图像渲染。因此,我们需要直接约束渲染的图像。具体来说,我们从预测的三平面
通常,体绘制需要沿每条射线分层采样,这对于高分辨率渲染来说在计算上是禁止的。因此,我们在人脸区域具有高采样重要性的随机112 × 112图像块上计算
建模高频细节和薄结构是特别具有挑战性的体绘制。因此,在这个阶段,我们在我们的数据上共同训练一个卷积细化器,它补充了NeRF渲染中缺失的细节,最终产生引人注目的1024 × 1024图像输出。
Conclusion
从实验中,我们观察到 Rodin 模型是一个强大的 3D 头像生成模型。这种模式还允许用户从肖像或文字中定制头像,从而大大降低了个性化头像创建的障碍。虽然本文只关注虚拟人物,但罗丹模型背后的主要思想适用于一般 3D 场景的扩散模型。事实上,高昂的计算成本一直是 3D 内容创作的一大挑战。在 3D 中执行连贯和 3D 感知扩散的高效 2D 架构是解决这一挑战的重要一步。在今后的工作中,提高三维扩散模型的采样速度,共同研究利用充足的二维数据来缓解三维数据瓶颈将是富有成效的。