Human4DiT:使用 4D Diffusion Transformer 生成自由视角人物视频。

Human4DiT,使用 4D Diffusion Transformer 生成自由视角人物视频。又一个根据一张图,生成人物动画视频的项目,效果如下视频所示。

给定参考图像、SMPL序列和摄像机参数,Human4DiT能够生成自由视图动态人体视频。

相关链接

项目地址:https://human4dit.github.io/

论文链接:https://arxiv.org/html/2405.17405v1

论文阅读

Human4DiT:使用 4D Diffusion Transformer 生成自由视角人物视频

摘要

我们提出了一种新的方法,用于从单个图像下在任意观点下产生高质量的时空连贯的人类视频。我们的框架结合了U-NET的优势,以进行准确的状态注入和扩散变压器,以捕获跨观点和时间的全局相关性。核心是级联的4D变压器体系结构,可将注意力跨越跨视图,时间和空间维度分配,从而可以对4D空间进行有效的建模。通过将人类身份,摄像机参数和时间信号注入相应的变压器来实现精确的调理。为了训练该模型,我们策划了一个跨越图像,视频,多视图数据和3D/4D扫描的多维数据集以及多维培训策略。我们的方法克服了基于基于GAN或基于UNET的扩散模型的先前方法的局限性,这些模型在复杂的动作和观点变化中挣扎。通过广泛的实验,我们证明了我们的方法能够综合现实,连贯和自由观看的人类视频,为在虚拟现实和动画等领域中的高级多媒体应用铺平了道路。

方法

Human4DiT的pipeline。我们的框架基于四维扩散转换器,它采用由二维图像、视图转换器和时间块组成的级联结构。输入包含参考图像、动态SMPL序列和相机参数。

从生成的噪声潜在表示开始,我们然后用多个条件对其去噪。首先,设计二维图像变换块来捕获每帧内的空间自注意力。此外,还注入了从参考图像中提取的人的身份,以保证身份的一致性。其次,我们使用视图转换块来学习不同视点之间的对应关系。最后,我们采用时间转换器捕捉时间相关性与时间嵌入。

效果展示

单目视频

多视角视频

静态3D视频

结论

我们已经提出了一种新的人类视频生成方法,该方法仅作为输入,并在自由视点下生成动态人类运动的时空连贯视频。我们的方法采用高效的4D变压器体系结构来建模多个域之间的相关性,包括视图,时间和姿势。与UNET相结合以进行准确的状态注入,我们的模型可以在跨越图像,视频,多视图数据和4D扫描的多维数据集上进行培训。经过训练,我们的方法可以从自由角度综合现实,连贯的人类运动视频,我们相信我们的贡献将激发未来的工作对4D内容的生成。

### Diffusion Transformer (DiT) 概述 Diffusion Transformer 是一种创新性的扩散模型,融合了去噪扩散概率模型(DDPM)和Transformer架构的特点[^1]。这种组合使得 DiT 不仅继承了传统扩散模型的强大生成能力,还具备了 Transformer 架构处理序列数据的优势。 ### 工作原理 #### 扩散过程 在传统的扩散模型中,图像或其他形式的数据通过一系列逐步增加噪声的过程被破坏,最终变成纯噪声。而在反向过程中,则是从纯噪声逐渐恢复到原始数据的状态。这一正向和反向过程构成了扩散模型的核心机制[^3]。 对于 Diffusion Transformer 来说,在前向传播阶段会按照一定的时间步长 t 向输入加入高斯白噪音;到了逆向重建环节则依赖于训练好的网络预测每一步应该去除多少噪音来逼近原图特征分布。此过程可以表示为: \[ q(\mathbf{x}_t|\mathbf{x}_{t-1})=\mathcal{N}(\sqrt{1-\beta_t}\mathbf{x}_{t-1};\mathbf{0},\beta_t \mathbf{I}) \] 其中 \(q\) 表示真实数据的概率密度函数,\(β_t\) 控制着每次迭代时所引入的新随机成分的比例大小。 #### Transformer 结合 为了更好地捕捉长期依赖关系并提高建模效率,Diffusion Transformer 将经典的自注意力机制融入进来。具体而言,通过对不同时间戳下的状态进行编码解码操作,实现了对整个演变路径的有效学习与模拟。此外,采用 Patchify 技术将图片切分成多个小块作为 token 输入给 transformer 层进一步增强了局部细节的表现力。 ```python class DiTBlock(nn.Module): def __init__(self, dim, num_heads=8, mlp_ratio=4., drop_path_rate=0.): super().__init__() self.norm1 = nn.LayerNorm(dim) self.attn = Attention(dim, num_heads=num_heads) # MLP block follows the attention layer. hidden_features = int(dim * mlp_ratio) self.mlp = Mlp(in_features=dim, hidden_features=hidden_features, out_features=dim, act_layer=nn.GELU, drop=drop_path_rate) def forward(self, x): shortcut = x x = self.norm1(x) x = self.attn(x) x += shortcut x = x + self.mlp(self.norm2(x)) return x ``` 这段代码展示了如何实现一个基本的 DiT Block,它包含了标准化层、多头注意模块以及一个多层感知机组成的MLP结构用于增强表达能力。 ### 应用场景 由于其独特的设计思路,Diffusion Transformer 可广泛应用于多种领域内的复杂任务之中,比如但不限于自然语言处理中的文本摘要生成、机器翻译;计算机视觉方面的人脸识别、风格迁移等。相较于其他类型的生成对抗网络GANs 或者变分自动编码VAEs ,DiTs 更擅长解决那些需要精确控制输出质量的任务,并且能够提供更加稳定可靠的性能表现[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIGC Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值