TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布 精华

发布于 2024-4-29 10:03
浏览
0收藏

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

论文链接:https://arxiv.org/pdf/2404.16748


今天和大家分享的这个工作,核心是解决了从文本描述生成3D穿着衣物的人体的任务。先前的工作通常将人体和衣物编码为一个整体模型,并在单阶段优化中生成整个模型,这使得它们在进行服装编辑时困难重重,同时失去了对整个生成过程的细粒度控制。为了解决这个问题,本文提出了一种分层式的穿着人体表示方法,结合渐进优化策略,可以生成解耦的3D人体模型,同时提供对生成过程的控制能力。基本思想是逐步生成一个穿着最少的人体和分层的衣物。在衣物生成过程中,提出了一种新的分层组合渲染方法来融合多层次的人体模型,并利用新的损失函数帮助将衣物模型与人体解耦。所提出的方法实现了高质量的解耦,从而为3D服装生成提供了一种有效的方式。大量实验表明,本文的方法在实现最先进的3D穿着人体生成的同时,也支持诸如虚拟试穿等服装编辑应用。

引言

在诸如AR/VR、沉浸式远程会议和虚拟试穿等各种应用中,生成3D穿着人体非常必要。在这些应用中,希望生成过程具有高度可控性和可分离性,即人体模型及其一组衣物可以独立创建,并同时支持自由更换和转移衣物。这需要对人体模型和衣物进行忠实的解耦。虽然手动生成这种分解的穿着人体可能耗时费力,但根据复杂采集系统(例如3D扫描和多视角视频)的输入进行自动生成也是不可伸缩且难以访问的。在实际应用中,用户通常希望可以使用简单的输入,如文本描述,来创建穿着衣物的人体。


受益于大语言模型和扩散模型的快速发展,一些工作已经开始探索各种文本到3D的任务。最近,DreamFusion提出了利用预训练的文本到图像扩散模型,在Score Distillation Sampling(SDS)的指导下,通过基于优化的流程生成3D对象。然而,由于缺乏人体先验知识,他们仍然在高质量的穿着人体生成方面遇到困难。为了解决这个问题,一些工作将线性混合蒙皮算法整合到基于优化的流程中,极大地提高了生成的穿着人体的质量。然而,这些方法通常将人体模型及其一组衣物表示为一个整体模型,并在单阶段优化中生成整个模型。这不仅使得服装编辑(如衣物更换)不可行,还导致了对整个生成过程的控制丧失(例如,无法指定衣物的内外顺序),从而限制了它们的适用性。


本文提出了TELA,一种用于从文本生成衣物解耦的3D人体模型的新方法。所提出的方法引入了一种逐层的穿着人体表示,其中人体和每件服装分别用独立的神经辐射场(NeRFs)表示。然后,提出了一种渐进优化策略,按顺序生成最小的穿着人体和逐层服装,这有效地输出了一个解耦的穿着人体模型,并且提供了足够的控制使用户可以控制生成过程,如下图1所示。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

然而,实现高质量的解耦服装生成是具有挑战性的。首先,现有的多层表示方法通常在相同空间中定义所有的NeRF层,然后采用Max或Mean操作来合成多层输出,这可能导致相邻层之间的穿透,如实验所示。更合理的做法是在每个NeRF的自己的层空间中定义。然而,如何划分不同层的区域是未知的。其次,与那些需要准确的部分mask作为输入的解耦重建方法不同,本文的目标是只使用文本实现解耦,这使得任务更加困难。本文的实验表明,仅使用基于身体级别的SDS损失不能获得高质量的衣物解耦。


为了解决这些挑战,本文首先提出了一种新颖的分层合成方法。在体素渲染过程中,该方法可以根据沿每条射线的每个点的透明度自动划分不同层的区域。在特定层的划分区域中,仅利用相应的NeRF来生成密度和颜色,避免了相邻层之间的相互穿透。对于衣物解耦,本文提出了新颖的双重SDS损失,同时监督渲染的穿着人体图像和仅衣物图像,这给衣物模型增加了更多的规范化,鼓励它与人体解耦。


大量实验证明,TELA有效地解耦了人体和每件衣物。由于解耦建模,本文的方法支持虚拟试穿等服装编辑应用,在先前的方法中很难实现。值得一提的是,从另一个角度来看,本文提出了一种通过同时考虑基础人体实现高质量3D服装生成的新方法。

总之,本工作的主要贡献包括:

  • 本文提出了一个新颖的框架,用于从文本输入生成解耦服装的3D人体模型,同时也提供了一种有效的方式进行3D服装生成。
  • 本文提出了一种新颖的解耦式衣物生成算法,引入了分层合成方法用于多层渲染,以及双重SDS损失用于衣物解耦。
  • 与整体建模方法相比,本文的方法在实现更好的3D穿着人体生成质量的同时,解耦建模释放了许多下游应用的潜力(例如虚拟试穿)。

相关工作

文本引导的3D内容生成。利用文本到图像(T2I)生成模型的显著进展[39, 41, 42],许多研究已经深入探讨了文本到3D生成领域。某些方法[19, 29]主张利用配对的3D和文本数据开发文本条件的3D生成模型。然而,与其图像-文本对应物相比[46],现有的配对3D-文本数据集规模有限,限制了这些方法的泛化能力。因此,许多研究已经探讨了利用预训练的2D生成模型生成3D内容而无需任何3D数据的方法。早期的研究提出利用CLIP模型[36]优化底层的3D表示(例如神经辐射场[17]或网格[20]),通过最小化渲染图像与相应文本描述之间的嵌入差异。由于CLIP空间容量有限,这些努力通常导致生成不现实的3D模型。最近,[23, 35]提出利用强大的文本到图像扩散模型进行带有分数蒸馏采样(SDS)的优化,取得了令人印象深刻的结果。此外,[50]提出了一种基于粒子的变分方法,即变分分数蒸馏,以增强3D生成的质量。尽管这些方法在一般对象生成方面取得了成功,但它们在实现高质量的穿着人体模型生成方面仍面临挑战。


文本引导的3D人体生成。在2D预训练生成模型的基础上,有几项研究旨在通过引入人体先验来增强3D人体生成。Avatar-CLIP [13]通过将神经辐射场集成为3D人体表示来增强参数化人体模型SMPL [3],然后利用CLIP模型进行优化。同样,利用参数化人体模型作为人体先验,一些工作[5]利用预训练的文本到图像扩散模型和分数蒸馏采样进行3D人体生成。DreamHuman [21]引入了一个可变形和姿态条件的NeRF模型,实现了可动画的3D穿着人体生成。最近,为了缓解Janus(多面)问题,DreamWaltz [16]引入了3D一致的分数蒸馏采样。该方法涉及将标准3D人体骨架投影到每个视图,并采用2D人体骨架条件的扩散模型 [58] 进行视图对齐优化,取得了令人印象深刻的结果。AvatarVerse [57] 将人体骨架条件替换为密集姿态映射。此外,TADA [22] 将NeRF模型替换为可变形的SMPL-X [31] 网格和纹理贴图,将结果无缝集成到现有的计算机图形工作流程中。HumanNorm [15] 提出通过微调扩散模型来生成法线贴图,实现了显著的人体几何生成。GAvatar [55] 引入了高斯飞溅表示法进行高效且高质量的人体渲染。尽管这些方法在穿着人体生成方面取得了显著成功,但它们通常将穿着人体表示为一个整体模型,忽略了分层性质,并面临着在服装编辑方面的挑战。


穿着人体建模。早期方法[1,2,25]通常依赖于参数化人体网格,并结合额外的顶点偏移来进行穿着人体建模。受到隐式函数[26,27,30]的进展的影响,近期的方法[7, 10, 32, 33, 44, 45, 47, 49, 52]展示了令人印象深刻的从图像和3D扫描中重建或生成穿着人体。通常,这些方法将人体和服装视为一个整体实体。为了解开人体和服装的表示,一些研究[6,11,34,53,54]提出了一个多层次的人体表示,实现了从3D扫描、深度传感器甚至单眼视频中的高质量重建。这些技术依赖于参数化人体模型[3],然后为服装重建单独的层。此外,还有一些作品提出从3D服装数据集中学习3D生成的穿着模型。BCNet [18]提出了学习基于参数网格的服装模型,利用网络来预测对于穿着人体重建至关重要的参数。此外,SMPLicit [9]采用隐式无符号距离函数来表示服装模型。尽管产生了有希望的结果,但3D服装数据的受限可用性导致这些服装模型的不真实和多样性有限。最近,一些并行的工作[14, 56]也尝试探索多层次人体生成。HumanLiff [14]从2D图像中学习分层次的人体生成。然而,他们的服装模型与人体没有解耦,这限制了服装编辑的应用。[56]主要专注于将头发和头饰与上半身解耦,而本文探索多层次服装和人体解耦的生成。[48]提出使用SMPL模型上的偏移网格构造生成解耦的服装。然而,由于SMPL的拓扑约束,他们无法生成松散的服装类型,如裙子和裙子。相比之下,TELA支持各种服装类型,并且可以实现更逼真的渲染。

方法

根据服装人物的文字描述作为输入,TELA旨在生成解耦的3D人体模型,其中每件服装与人体分离。下图2展示了本文方法的概述。为了解耦每个组件,本文提出了一个由多个神经辐射场(NeRFs)参数化的多层次穿着人体模型,并引入了一种新颖的基于透明度的分层组合渲染方法。然后,设计了一种逐层生成方法,根据文本prompt生成每个组件。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

多层次穿着人体模型

与先前的方法不同,本文将穿着的人体分解为最少衣物的人体和多个衣物(例如衬衫、外套和裤子)。衣物的几何形状和外观被表示为神经辐射场 F,这些场由 MLP 网络实现。为了更好地表示人类的头发,本文还使用 NeRF 作为最少衣物的人体的表示,而不是网格 [3]。每个组件都表示为一个单独的网络。具体来说,对于组件p ,模型可以写成如下形式:

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

其中,σ(x) 和 c(x) 表示样本点 x 的预测密度和颜色。hp(x) 表示可学习的哈希编码函数 [28]。

此外,与先前的工作类似,本文在 NeRF 空间中定义了一个‘A-pose’人体网格(即 SMPL),以引入人体先验。具体来说,本文利用 SMPL 网格来确定不同服装的粗略 3D 区域,例如上半身和下半身的衣物。此外,在 NeRF 优化过程中,3D SMPL 骨架被投影到每个视点,并将生成的 2D 人体骨架与 ControlNet [58] 进行结合进行训练(详见下文)。

基于透明度的分层组合

根据预测的密度和颜色,可以通过体积渲染合成新的视图图像:

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

训练

采用多层服装人体表示,本文提出了一个渐进生成框架,按顺序获取每个组件模型。该框架不仅确保了每个组件的解耦,还在服装人体生成过程中提供了增强的灵活性和可控性。具体而言,本文首先生成一个最小化的人体身体,然后逐渐向外部生成服装。


得分蒸馏抽样(SDS)。在详细介绍组件生成之前,本文首先简要描述一下得分蒸馏抽样[35]。为了利用文本描述提供的监督,提出了SDS损失来利用预训练的扩散模型 ϵϕ 进行训练。给定由 θ 参数化的 3D 模型以及其可微分的渲染图像 u = g(θ),则 3D 模型参数 θ 的 SDS 梯度可表示如下:

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

其中,w(t) 表示一个依赖于时间步长 t 的加权函数,ut 为加入噪声的图像,y 为输入的文本prompt。ϵ 是添加到渲染图像 u 中的注入噪声。


生成最小穿着身体。生成的第一个组件是最小穿着的身体。与先前的工作类似[16],本文采用了2D人体骨骼条件扩散模型来提高多视图的一致性。具体来说,依靠预定义的“A姿势”SMPL网格,本文可以获得一个3D人体骨骼。然后,当辐射场渲染图像时,可以通过将3D骨架投影到相同的视点来获得相应的2D人体骨架。在2D人体骨架s的条件下,SDS损失可以写成如下形式:

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

其中yb表示身体的相应文本prompt。此外,本文还引入了一个正则化损失来防止浮动的“辐射云”:

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

其中,M表示NeRF模型的渲染mask。第一项二进制熵函数BE(·)鼓励mask二值化,第二项引入稀疏性正则化。λ和λ是常数。


因此,最小服装身体生成的完整训练损失如下所示:

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

服装生成。给定最小服装身体,本文旨在逐渐生成每件衣服模型。


TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

当仅使用组合渲染图像进行训练时,本文最终可以获得一个穿着衣服的人的高质量模型。然而,学到的服装模型往往与身体模型耦合,即得到的服装模型可能包含人体的部分,如手臂和腿(见下图7)。为了解决这个问题,本文引入了额外的纯衣服 SDS 损失,它鼓励衣物模型仅包含衣物。具体来说,基于分层组合,本文另外渲染一个只使用衣物模型的图像,如下所示:

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

请注意,这里固定了身体模型的参数。

实验

实现细节。本文对每个 NeRF 模型进行了 10k 次迭代的训练,使用了batchsize为 1,在单个 A100 GPU 上大约需要 3 小时。NeRF 模型在前 5k 次迭代时以 256 × 256 的分辨率渲染图像,在后 5k 次迭代时以 512x512 的分辨率渲染图像。给定描述着衣着人的文本prompt,例如“一个穿着衣物 A、B 的男人”,本文可以通过编程方式生成相应的优化文本prompt,如“一个只穿内衣的男人”用于生成最小衣着体,以及“一个只穿着衣物 A 的男人”和“一件衣物 A”用于生成衣物 A。

与整体建模方法比较

定性比较。为了评估生成的着衣人物的质量,本文将TELA与最先进的整体建模方法DreamWaltz [16]进行比较,后者引入了3D一致性分数蒸馏采样并取得了令人印象深刻的结果。请注意,虽然存在其他文本到人类生成的方法,但本文关注的是衣物解耦的3D人体生成。这些方法与本文的工作是正交的,本文的方法也可以适应它们的框架。


本文在下图3中展示了定性结果。DreamWaltz [16]生成的着衣人物衣物模糊且扭曲。相比之下,得益于解耦建模,本文的方法产生了高质量的衣物细节。尽管本文单独对人体和每件衣物建模,但所提出的方法实现了每个组件的自然组合。此外,第二个人物(即黑人女性)的结果显示,解耦建模还有助于缓解多面问题。此外,在下图4中展示了更多着衣人物和解耦的衣物的定性结果。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

定量比较。对生成的3D人体模型进行定量评估是具有挑战性的。本文采用了Fréchet Inception Distance(FID)度量标准,该标准比较了两个图像数据集的分布。本文计算了生成模型的渲染图像与稳定扩散模型产生的图像之间的FID。如下表1所示,本文实现了较低的FID分数,表明本文的渲染更接近于SD模型的高质量2D图像。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

用户研究。本文还进行了用户研究,进一步评估生成的着装人体与基线[16]的质量。本文随机选择了30个文本prompt,并将生成的着装人体模型渲染为旋转视频。在给定这些视频的情况下,本文要求26名志愿者评估(1)整体着装人体质量,(2)衣物质量,和(3)与文本输入的一致性,并选择其偏好的结果。定量结果如下表2所示,表明所提出的方法在所有三个指标上都比基线获得了更高的偏好。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

定性的衣物生成比较

由于对人体和每件衣物进行了解耦建模,本文的方法还实现了高质量的3D衣物生成。为了评估生成的衣物质量,本文将其与最先进的文本到3D方法进行了比较:DreamFusion [35]、Magic3D [23]和ProlificDreamer [50]。


定性结果如下图5所示,表明本文提出的方法明显优于基线方法。首先,如第一行所示(即牛仔裤),即使使用了依赖视角的文本增强技术 [35],基线方法 [23,35,50] 在衣物生成方面仍然存在多面问题。相比之下,通过与人体结合,本文的方法另外引入了基于2D人体骨骼的条件扩散模型来增强多视角一致性,这极大地减轻了多面问题。其次,基线方法通常生成与人体耦合的衣物,而本文的方法实现了高质量的解耦。第三,由于采用了分层的合成渲染,如第二行所示(即无袖连衣裙),本文的方法生成的衣物具有类似真实衣物的中空结构,这对于服装迁移等应用非常重要。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

消融研究

透明度基础的合成渲染。如前文所述,为了防止相邻组件的 NeRF 之间的穿透,本文的方法利用透明度基础的合成渲染来组合多个 NeRF。在这里,本文将其与基线[40,51]进行比较,基线没有进行这种合成渲染,即直接使用最大操作来融合不同模型的密度,然后使用相应的颜色进行体积渲染。生成的着装人体模型的定性结果如下图6所示。正如第一列所示,没有提出的合成渲染,人体和连衣裙之间存在严重的穿透。此外,如第二列所示,本文的合成渲染可以帮助将服装模型与具有适当尺寸的人体对齐。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

双 SDS 损失。如前文所述,本文提出了用于服装优化的双 SDS 损失,即额外引入服装 SDS 损失。在这里,本文分析了额外服装 SDS 损失函数的效果。定性结果如上图7所示。结果显示,当不使用服装 SDS 损失时,生成的服装模型将与人体纠缠在一起。原因是 2D 人体骨架条件的 SDS 损失仅监督着穿着衣物的人体的合成渲染与文本输入一致,这并不限制服装模型只包含衣物。相比之下,服装 SDS 损失为服装模型提供了额外的约束,可以消除不希望的伪影。此外,正如上文所示,仅使用服装 SDS 损失,服装模型无法与人体对齐,而且服装质量也会下降。因此,提出的双 SDS 损失对于高质量的服装生成是有效的。


正则化损失。如前文所述,本文引入了一个正则化损失来防止浮动的“辐射云”。本文分析了这个正则化损失的影响,结果如上图7所示。去除这个损失会导致在生成的人体和服装周围出现浮动伪影。

应用

由于解耦建模,本文的方法支持在同一个人身上自由组合不同的衣物。本文在下图8中展示了三件衣服(深灰色夹克、珊瑚色T恤和棕色卫衣)和三条裤子(牛仔裤、运动裤和卡其色短裤)的自由组合。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

此外,本文的目标还包括促进具有相似体形的个体之间的服装转移,考虑到服装尺码的相似性,这是一个有价值的追求。虽然 NeRF 模型在表示各种类型的服装方面表现出色,但在 NeRF 表示下的服装转移面临挑战。[56] 提议手动调整 NeRF 模型的大小。如下图9所示,尽管他们可以避免穿透,但调整大小的服装不能很好地适应新的人。为了解决这个问题,本文引入了一个服装变形场。具体来说,对于每个服装模型 p 的样本点 x,本文使用 MLP 网络Dp预测其非刚性变形,并利用与服装生成相同的损失函数(10)。变形场训练了2.5k步。注意,这里只训练了变形场的参数。基于变形场,本文的方法可以实现更好的服装转移。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

此外,本文可以集成线性混合皮肤模块来生成可动的人体模型。采用类似于 DreamWaltz 的动画模块,所提出的方法可以在新的人体姿势下产生高质量的渲染结果。结果见下图10。

TELA: 最先进文本描述生成3D穿衣人体方案!支持虚拟试衣,上海AI Lab&网易等联合发布-AI.x社区

限制

本文所提出的方法仍然存在以下局限性。首先,本文的生成过程需要几个小时的优化时间,这比文本到图像的生成要慢得多。探索更高效和通用的模型 [24] 用于解耦的人体生成可能会显著提升其适用性。其次,虽然本文的方法可以通过引入线性混合皮肤模块来支持可动人体生成,就像之前的工作 [16, 21] 那样,但更有趣的是探索解耦的组件(即身体和衣服)的着装人体动画,而不是一个整体模型,这留作未来的工作。第三,当前的人体和衣服都是以 NeRFs 表示的。像 [23] 那样,可以进一步引入带纹理的网格表示,这可以无缝地集成到现有的计算机图形系统中。

结论

总的来说,本文提出了一种新颖的方法,用于从文本输入中生成解耦的着装三维人体模型。与以往的方法不同,本文提出了一种多层次的着装人体表示,并逐步生成每个组件。为了实现更好的解耦,本文首先引入了基于透明度的分层组合渲染,有助于分离相邻层次。然后,本文提出了新颖的双 SDS 损失,帮助衣物模型与人体解耦。由于有效的解耦,本文的方法实现了高质量的三维服装生成。实验表明,本文的方法不仅实现了更好的着装人体生成,还支持着装编辑应用,如虚拟试穿。


本文转自 AI生成未来 ,作者:Junting Dong等


原文链接:​​https://mp.weixin.qq.com/s/1y5UyDqlpE0FROV4mla7dA​

收藏
回复
举报
回复
相关推荐