paper: https://arxiv.org/abs/2212.06135
总结:提出一种基于扩散模型和tri-plain features的3D虚拟人像生成方法。该方法包含多个模型,需要多次训练:
- 使用Blender synthetic pipeline(Fake it untill you make it)生成虚拟数据。共包含100K个虚拟人像,对每个虚拟人像,额外渲染300幅多视角图片(256 x 256)
- 基于步骤1的数据,拟合得到表征每个虚拟人像的tri-plain features(256 x 256 x 32),并训练共享解码器;
- 训练基础扩散模型,学习高斯噪声到低分辨率tri-plain features(基于步骤2下采样得到)的映射。同时,会将图片编码作为条件输入;
- 训练扩散超分模型,学习tri-plain features低分辨率到高分辨率的映射。
- 训练卷积超分模型,学习渲染图片低分辨率到高分辨率的映射。
produce high-fidelity 3D avatars
use xx to orchestrate (organize) the feature generation
the xx hampers cross-plane communication
hallucinate a 3D avatar = 3D portrait from a single image
目录
摘要
引言
方法
Robust 3D Representation Fitting
Latent Conditioned 3D Diffusion Model
Diffusion Tri-plane Upsampler
实验
Unconditional Generation Results
Comparison
Analysis of the Rodin Model
Application
3D portrait from a single image
Text-to-avatar generation
Text-based avatar customization
摘要
- 提出一种3D生成模型:用扩散模型自动生成3D数字虚拟人,并将其表征为neural radiance fields。
- 该任务的主要问题在:生成高质量虚拟人,需要耗费大量时间和内存;
- 本文提出roll-out diffusion network (Rodin),该方法将neural radiance field表征为多个2D feature maps,并将这些特征层展开为一个2D特征平面,进一步在该特征平面中执行3D-aware diffusion。
- 3D-aware convolution:通过映射关系,在2D特征上执行了3D卷积,提高效率;
- latent conditioning:组织特征生成,使得全局连贯,可生成高保真虚拟人像,并可通过文本控制语义修改;
- hierachical synthesis:进一步增强细节;
- Rodin的功能:1)3D avatar generation from text;2)3D avatar generation from image;3)text-guided editability
引言
- 为什么要做数字虚拟人:1)数字虚拟人在电影、游戏、元宇宙中有广泛应用;2)由于虚拟人制作流程繁琐,现有数字虚拟人数据少,尤其是在头发和胡须。
- 本文提出一种用于制作数字虚拟人的扩散模型,该方法将虚拟人表示为神经辐射场,每个点描述了颜色辐射率(color radiance)和3D体素的密度(density of the 3D volume)。主要难点在于,生成高质量虚拟人需要大量的内存和计算开销。
- 为了解决该问题,本文提出了Rodin(roll-out diffusion network),该方法将神经辐射场表征为多个2D feature maps,并将这些特征层展开为一个2D特征平面,进一步在该特征平面中执行3D-aware diffusion。具体来说,本文使用tri-plane representation(EG3D),将这些特征层展开后,执行3D-aware diffusion。Rodin由三个重要部分组成:
- 1)3D-aware convolution,在tri-plain上执行,希望学习到3D关系;
- 2)latent conditioning,用训练数据集中的avatars,训练一个额外的图片编码器,提取语义隐向量,作为扩散模型的条件输入。当语义编辑时,本文使用权重冻结的CLIP图片编码器,该编码器和text prompts共享隐空间。
- 3)hierarchical synthesis,首先生成低分辨率tri-plane(64 x 64),然后使用一个diffusion-based上采样,产生高分辨率(256 x 256)。训练diffusion upsampler时,细节是惩罚图片级别的损失。
- Rodin在100K个具有多视角图片的虚拟人像数据集上训练(Fake it untill you make it: face analysis in the wild using synthetic data alone)。
方法
Robust 3D Representation Fitting
- 数据准备:使用Blender synthetic pipeline(Fake it untill you make it)生成虚拟数据。共包含100K个虚拟人像,对每个虚拟人像,额外渲染300幅多视角图片(256 x 256)。
- 表征形式:通过tri-plain features(EG3D)表征虚拟人像,每个虚拟人像有一个对应的tri-plain features(3个特征平面,每个特征平面维度为256 x 256 x 32)。输入空间位置和索引特征,解码器处理后得到该点的density和view-dependent color,后两者通过volumetric rendering后可以得到RGB图像。
- 解码器:所有虚拟人像共享一个解码器,由MLP组成。
Latent Conditioned 3D Diffusion Model
- 扩散模型:通过扩散模型,学习高斯噪声到tri-plain features(64 x 64 x 32)的映射关系。相较于传统扩散模型,在训练时,损失还包括variational lower bound loss L_VLB [41];在推理时,采样方法时stochastic ancestral sampler [24];
- 3D-aware convolution:使用传统2D U-Net处理tri-plain features,会破坏特征间空间关系,导致生成图片失真。因此,本文首先将tre-plain features展平(Tri-plain roll-out);其次,对特征图上一点y_uv,会将y_u和y_v和它concat在一起做卷积(3D-aware conv),y_u是指uw特征图上的u行,y_v是指vw特征图上的v列,通过重复填充,将三者维度统一为H x W x C。
- Latent conditioning:对任意目标,将其正面超前图片送入冻结参数的CLIP图片编码器,得到512维隐码,在训练扩散模型时,将512维隐码作为扩散模型的条件输入。另外,有20%概率将latent编码置零(classifier-free gudance),在推理阶段,通过混合条件预测和非条件预测,让输出更加稳定:
,后者为非条件预测。
Diffusion Tri-plane Upsampler
- Diffusion超分模型:预测不是噪声,而是高分辨率tri-plain features。会对tri-plain features做数据增强(condition augmentation),包含random downsampling,Gaussian blurring和Gaussian noises。另外在训练过程中,会对渲染图片引入损失:perceptual loss,具体来说,会用预训练VGG的多层特征提取器计算:
。
- 卷积超分模型:将渲染图片(512 x 512)超分至(1024 x 1024)
实验
Unconditional Generation Results
两个tri-plain features插值
Comparison
主要和Pi-GAN、GIRAFFE和EG3D比较
Analysis of the Rodin Model
- 对Latent Conditioned 3D Diffusion Model中所提3个方法的消融实验:
- 对扩散超分模型和卷积超分模型的消融实验:
Application
3D portrait from a single image
Text-to-avatar generation
Text-based avatar customization