《HumanGaussian: Text-Driven 3D Human Generation with Gaussian Splatting》
前置知识:
\quad 1)SMPL(Skinned Multi-Person Linear)模型
\quad SMPL(Skinned Multi-Person Linear)模型是一种用于表示人体形状和姿势的三维模型。
\quad
a. Skinned表示这个模型不仅仅是骨架点,其实有蒙皮的,其蒙皮通过3D mesh表示。3D mesh如下所示,指的是在立体空间里面用三个点表示一个面,可以视为是对真实几何的采样,其中采样的点越多,3D mesh就越密,建模的精确度就越高。
\quad
b. Multi-person表示的是这个模型是可以表示不同的人的,是通用的。
\quad
c. Linear表示人体的不同姿态或者不同身高,胖瘦(我们都称之为形状shape)是一个线性的过程,是可以控制和解释的。
\quad 在SMPL模型中,我们的目标是对于人体的形状(胖瘦高矮),和人体的动作姿态进行定义。
\quad 为了描述人体的动作,SMPL模型中定义了一个维度是 24 x 3 的姿态参数θ,去描述某个时刻人体的动作姿态。24指的是24个关节点,但是3并不是(x, y, z),而是该节点针对于其父节点的旋转角度的轴角式表达。
\quad 为了描述人体的形状,SMPL模型中定义了一个维度是 10 的形状参数β,每一个维度的值都可以解释为人体形状的某个指标,比如高矮,胖瘦等。
\quad 2)线性混合蒙皮(Linear Blend Skinning)
\quad 线性混合蒙皮(Linear Blend Skinning),也称为蒙皮权重插值,用于模拟三维模型的形变(skinning)和骨骼动画。蒙皮是指如何将模型的表面与其骨骼结构关联起来,以便在动画中实现形变。
\quad SMPL模型使用线性混合蒙皮作为其形变模型的基础。SMPL使用线性混合蒙皮来模拟人体的肌肉和骨骼的运动。
一、正文:
\quad 为了引入人体结构先验,最近的文本驱动 3D 人体生成研究将 SDS 与 SMPL 等模型结合起来。具体来说,一个常见的做法是将人体先验集成到网格(mesh)和神经辐射场(NeRF)等表示中,或者通过将身体形状作为网格 / 神经辐射场密度初始化,或者通过学习基于线性混合蒙皮(Linear Blend Skinning)的形变场。然而,它们大多在效率和质量之间进行权衡:基于 mesh 的方法很难对配饰和褶皱等精细拓扑进行建模;而基于 NeRF 的方法渲染高分辨率结果对时间和显存的开销非常大。如何高效地实现细粒度生成仍然是一个未解决的问题。
\quad
最近,3D Gaussian Splatting(3DGS)的显式神经表达为实时场景重建提供了新的视角。它支持多粒度、多尺度建模,对 3D 人体生成任务非常适用。然而,想要使用这种高效的表达仍有两个挑战:
\quad
1)3DGS 通过在每个视锥体中排序和 alpha - 混合各向异性的高斯来表征基于图块的光栅化,这仅会反向传播很少一部分的高置信度高斯。然而,正如 3D 表面 / 体积渲染的研究所证实的那样,稀疏的梯度可能会阻碍几何和外观的网络优化。因此,3DGS 需要结构引导,特别是对于需要层次化建模和可控生成的人体领域。
\quad
2)朴素的 SDS 需要一个large scale的无分类器指导(Classifier-Free Guidance)来进行图像文本对齐,例如,在 DreamFusion 中使用的 100。但它会因过度饱和而牺牲视觉质量,使真实的人类生成变得困难。此外,由于 SDS 损失的随机性,3DGS 中原始的gradient-based density control 会变得不稳定,导致模糊的结果和floating artifacts。
\quad 因此,我们提出了有效且快速的 3D 人体生成模型 HumanGaussian,通过引入显式的人体结构引导与梯度规范化来辅助 3D 高斯的优化过程,能够生成多样且逼真的高质量 3D 人体模型。我们的直觉在于,3DGS是一种具有周期性高斯收缩或增长的有效渲染器,这种自适应密度控制可以自然地由内在的人体结构引导。本文的关键在于,结合显式的结构指导和梯度正则化,以促进高斯优化。
\quad
具体地,我们首先提出了一个 Structure-Aware SDS 联合学习人体外观和几何。不想先前的工作《Text-to-3d using gaussian splatting》、《3d gaussian splatting for real-time radiance field rendering》、《Gaussian dreamer: Fast generation from text to 3d gaussian splatting with point cloud priors》那样利用一般的先验,比如SfM和Point-E模型,我们将高斯初始化在SMPL-X mesh上。这样,后续的densification和pruning过程就会关注人体表面周围的区域,可以有效地捕捉几何变换,比如accessories和wrinkles。
此外,我们扩展了SD,使同时降噪RGB和Depth。这种双分支设计提取了两个空间对齐目标(即RGB和深度)的联合分布,在结构引导和纹理真实性下提高了高斯收敛性。
\quad 为了进一步改善自然外观的渲染,我们还设计了一个Annealed Negative Prompt Guidance。特别地,我们将SDS解耦为a noisier generative score和a cleaner classifier score,后者配备了一个decreasing negative prompt guidance来促进在正常CFG尺度(7.5)时的真是生成,这一点已经在当前的 text-to-3d 研究中被证实《Noise-free score distillation》《Text-to-3d with classifier score distillation》。通过这种方式,我们设法避免过饱和模式通过使用适当的CFG尺度,从而很好地平衡样本质量和多样性。此外,由于SDS损失的高方差,直接依靠梯度信息来控制密度,会导致模糊的几何。相反,我们建议在 prune-only 阶段消除基于高斯大小的浮动伪影。
二、方法
2.1. Preliminaries
\quad
SMPL-X模型:是一个三维参数的人体模型,定义了身体,手,和脸的形状拓扑。它包含10475个顶点,和54个关键点。它可以被如下公式定义:
\quad
T
ˉ
\bar{T}
Tˉ是平均模板形状。Bs, Bp, Be分别是shape,pose,expression的blend shape functions。T(β,θ,φ)表示来自
T
ˉ
\bar{T}
Tˉ的非刚性变形。LBS(·)是linear blend skinning函数,将T(β,θ,φ)转换为目标姿态θ,骨骼关节点 J(β),以及在每个顶点上定义的混合权值W。
\quad
方法的总览如下图所示。比较直观地看出来,先用SMPL-L网格初始化3DG,然后用dual-branch SDS对其进行优化,最后进行Prunning。
2.2 Structure-Aware SDS
\quad
这一部分的优化目标如下所示:
2.3. Annealed Negative Prompt Guidance
\quad
首先将SDS解耦为两项,前一项是将图像推向更真实的流形的生成分数,后一项是将样本与隐式分类器对齐的分类器分数。
\quad
在文生图和文生 3D 领域中,负文本被广泛用于避免生成不需要的属性。根据经验,研究者发现负文本分类器分数会在小时间步长内损害质量,因此使用退火的负文本引导来结合两个分数进行监督:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!