UC Berkeley基于Stable Diffusion提出3DHM新框架,利用3D姿势让照片动起来!
论文链接:https://arxiv.org/pdf/2401.10889.pdf
开源代码:https://boyiliee.github.io/3DHM.github.io/
给定一个人的随机照片,我们能否准确地模拟出他人的动作来使之动起来?这个问题需要对人体姿势随时间变化的深刻理解,学习关于人体外貌和服装的先验知识。例如,在图中,演员可以做各种各样的动作,从简单的行走和奔跑到较复杂的战斗和跳舞。对于模仿者来说,学习有关其外貌和服装的视觉前提是使他们能以不同的姿势和视角模拟动作的关键。

在本文中,我们提出了一种基于扩散模型的框架,用于从给定的目标3D动作序列的单个图像中模拟人物动画。我们的方法有两个核心组件:a) 学习关于人体和服装不可见部分的先验知识,以及b) 渲染具有适当服装和纹理的新的身体姿势。对于第一部分,我们学习了一个内插扩散模型来还原给定单个图像中未见部分的人。我们在纹理映射空间上训练这个模型,这使它更有效地提取样本,因为它对姿势和视角是不变的。其次,我们开发了一个基于扩散的渲染流水线,其由3D人体姿势控制。这产生了人物的新的姿势的逼真渲染,包括服装、头发和不可见区域的合理内添补。这种分离的方法使我们的方法能够生成一系列图像,这些图像在3D姿势的目标运动和视觉相似性方面忠实于输入图像。此外,3D控制允许各种合成相机轨迹来渲染一个人。我们的实验证明,与以前的方法相比,我们的方法在生成持续运动和各种具有挑战性和复杂的姿势方面表现出韧性。
我们的3DHM框架充分利用了来自最先进的预测模型4DHumans的准确3D姿势预测的优势,该模型能够准确地跟踪人体动作并提取演员视频的3D人体姿势。对于我们想要模仿的任何演员的视频,我们使用基于3D重建的跟踪算法提取演员的3D网格序列。对于修复和渲染部分,我们依赖于预训练的Stable Diffusion模型,这是一类最新的扩散模型之一,在各种生成视觉任务上取得了高竞争结果。

第一阶段模型的目标是通过修复模仿者的未见区域来生成一个合理完整的纹理映射。我们首先将一个三维网格渲染到输入图像上,并根据4DHumans的方法为每个可见三角形采样颜色,从而得到一个部分可见的纹理映射。

我们首先采用一种常见的方法来推断像素与表面之间的对应关系,从而构建出一个不完整的UV纹理映射,用于将单个RGB图像应用于三维网格的纹理绘制。我们还计算出一个可见性掩模,以指示哪些像素在三维空间中可见,哪些不可见。
(2)目标
由于此建模的目标是生成完整的纹理映射,我们使用视频数据生成了一个伪完整的纹理映射。由于4DHumans可以跟踪人物随时间的变化,它将内部纹理映射表示不断更新为可见区域的移动平均值。然而,为了生成更清晰的图像,我们发现在生成任务中,中值滤波比移动平均更适用。虽然这种技术可以应用于任何视频,但在第一阶段,我们依赖于2,205个人类视频。对于每个人类视频,我们首先从每一帧中提取出一个部分纹理映射。由于每个视频包含360度的人体视角,我们计算出从整个视频中得到的伪完整纹理映射,并将其作为第一阶段的目标输出。具体而言,我们取视频中所有可见部分纹理映射的中值。
我们直接在在图像补全任务中表现出色的StableDiffusion Inpainting模型上进行微调。我们输入一个部分纹理地图和对应的可见性掩码,并获得人体恢复预测地图。我们锁定文本编码分支,并始终将“真实人类”作为固定Stable Diffusion模型的输入文本。我们将训练后的模型称为Inpainting Diffusion。
在第2阶段,我们的目标是获得一个真实的渲染,展示一个模仿演员动作的仿真器。虽然中间渲染(由演员的姿势和从第1阶段获得的纹理图进行渲染)可以反映出多样的人类动作,但这些SMPL网格渲染是贴合身体的,无法代表具有服装、发型和身体形状的逼真渲染。例如,如果我们输入一个女孩穿着裙子跳舞的场景,中间渲染可能能够“跳舞”,但不可能使用SMPL网格渲染来使裙子动起来。为了训练这个模型,我们完全自监督的方式假设演员是模仿者,毕竟一个好的演员应该是一个好的模仿者。通过这种方式,我们可以提取任何视频的4DHumans的姿势序列,并从第1阶段获得任何单帧的完整纹理图,然后通过将纹理图渲染到3D姿势上获得中间渲染。现在,我们有了中间渲染和真实RGB图像的配对数据。利用这个数据,我们收集了大量的配对数据,并使用条件对我们的第2阶段扩散模型进行训练。

首先,我们将从第一阶段生成的纹理地图(完全完成)应用于演员3D身体网格序列的中间渲染中,以呈现模仿者执行演员动作的场景。请注意,在这个阶段,中间渲染仅能反映出适合3D网格身体的衣服(紧身衣),但无法反映SMPL身体之外的纹理,比如裙子的蓬松区域、冬季夹克或帽子等。为了获取具有完整服装纹理的人体,我们将获得的中间渲染图像和该人的原始图像输入到Rendering Diffusion中,以呈现具有逼真外观的新姿势的人体。
(2)目标
由于我们采集数据时假设演员是模仿者,我们拥有中间渲染和真实RGB图像的配对数据。这使我们能够在许多数据上训练该模型,而无需任何直接的3D监督。
(3)模型
与ControlNet类似,我们将Stable Diffusion模型 的编码器权重直接复制为我们的可控分支(“可训练副本”)以处理3D条件。我们冻结预训练的StableDiffusion并输入带有噪声的潜变量(64 × 64)。同时,我们将贴图的3D人体和原始人体照片输入到固定的VAE编码器中,获取贴图的3D人体潜变量(64 × 64)和外观潜变量(64 × 64)作为条件潜变量。我们将这两个条件潜变量输入到Rendering Diffusion的可控分支。该分支的关键设计原则是从人体输入中学习纹理,并通过去噪过程将其应用于训练中的贴图的3D人体上。其目标是通过第一阶段生成的(贴图的)3D人体来呈现出带有生动纹理的真实人体。我们通过扩散步骤和固定的VAE解码器将输出潜变量处理为像素空间。与第一阶段相同,我们锁定文本编码器分支,并始终将“一个真实的人在表演”作为输入文本输入到固定的Stable Diffusion模型中。我们将我们训练的模型称为Rendering Diffusion。在Rendering Diffusion中,我们逐帧预测输出。
基于帧级生成质量的定量比较


可视化结果对比

