视频生成新突破:内容-运动潜在扩散模型(CMD)

2024-08-26 15:20

本文主要是介绍视频生成新突破:内容-运动潜在扩散模型(CMD),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

人工智能咨询培训老师叶梓 转载标明出处

当前的视频扩散模型虽然在生成质量上取得了巨大进步,但在处理高维视频数据时仍然面临内存和计算资源的高需求。这些模型通常直接处理高维视频数据,导致在生成视频时需要大量的计算资源和内存消耗。为了解决这一问题,由韩国高等科学技术院(KAIST)、NVIDIA公司、加州大学伯克利分校和加州理工学院的研究人员联合提出了一种新颖的视频扩散模型——内容-运动潜在扩散模型(CMD),这是一种高效的视频生成模型,它通过将视频编码为内容帧和低维运动潜在表示的组合来显著降低计算成本。

方法

图2展示了视频生成中图像扩散模型的传统扩展方法与本文提出的CMD方法之间的比较。在(a)部分,传统方法通过在预训练的图像扩散模型中直接添加时间层来扩展至视频生成,而在(b)部分,CMD方法则采用不同的策略,它将每个视频编码为类似图像的内容帧和运动潜在表示,接着对预训练的图像扩散模型(例如Stable Diffusion)进行微调以生成内容帧,并训练一个新的轻量级扩散模型(例如DiT)来生成运动表示。图中以蓝色标记了新增加的参数,显示了CMD方法在避免直接处理高维视频数据的同时,如何利用预训练图像模型的知识来提高视频生成的效率和质量。

扩散模型的核心概念是通过一个渐进的去噪过程从高斯分布 N(0x, Ix) 学习目标分布 pdata(x)。这个过程涉及一个预定义的前向过程 q(xt|x0),它从 pdata(x) 开始逐渐添加高斯噪声,直到时间步 T。这里的关键是学习一个反向过程 p(xt−1|xt),它可以被表述为一个高斯分布,其中 ϵθ(xt, t) 是通过 ϵ-预测目标训练的去噪自编码器。

内容-运动潜在扩散模型(CMD)由一个自编码器和两个潜在扩散模型组成。自编码器将视频 x1:L 编码为单个内容帧 和低维运动潜在表示 z。模型的目标是学习分布 p(x¯, z|c),这可以通过两个扩散模型来实现,其中一个预训练的图像扩散模型用于学习内容帧分布 p(x¯|c)

自编码器使用简单的重构目标(例如,ℓ2 损失)来编码视频输入 x1:L。图 4 展示了自编码器的编码器和解码器的结构。编码器 包括一个基础网络 fϕB 和两个头 fϕI, fϕM,分别用于计算内容帧 和运动潜在表示 z。内容帧 是通过将所有帧的重要性加权求和得到的,而运动潜在表示 z 则设计为两个潜在表示的串联,即 z = (zx, zy)

解码器网络 包括两个嵌入层 gψI, gψM 和一个视频网络 gψB,用于从 gψI, gψM 的输出重建 x1:L。视频网络的输入 v 是通过将每个 vt, vx, vy 的相应向量相加得到的。

内容帧扩散模型利用预训练的图像扩散模型,通过微调来学习 p(x¯|c),而不增加额外的参数。这种微调是内存高效的,因为它不增加输入维度,并且由于内容帧和自然图像之间的小差距,可以高效地训练。

运动扩散模型用于学习条件分布 p(z|x¯, c)。该模型利用 DiT(Peebles & Xie, 2023)的网络架构,这是一个基于 Vision Transformer 的扩散模型。模型通过将条件内容帧 作为输入级补丁嵌入,为预测运动潜在表示 z 提供“密集条件”。这种设计使得模型能够快速收敛,主要得益于条件提供的丰富信息和运动潜在表示的低维度。

通过这种方法,CMD模型不仅提高了视频生成的效率,还通过减少输入维度显著降低了内存和计算成本。

实验

数据集:研究团队使用了两个主要的数据集进行评估:UCF-101和WebVid-10M。此外,他们还使用了MSR-VTT数据集进行文本到视频模型的零样本评估。所有模型训练仅使用了训练集,而测试集或验证集则被排除在外。

基线对比:对于UCF-101上的条件生成(非零样本),研究者考虑了DIGAN、TATS、CogVideo、Make-A-Video和MAGVIT等最近的方法作为基线。对于零样本评估,他们与CogVideo、LVDM、ModelScope、VideoLDM、VideoFactory、PYoCo、GODIVA和NUWA等方法进行了比较。

训练细节:在所有实验中,视频被剪辑成16帧用于训练和评估。视频自编码器使用了TimeSFormer作为骨干网络。内容帧扩散模型使用了预训练的Stable Diffusion模型,而运动扩散模型则使用了DiT架构。

通过可视化生成的视频,研究者展示了CMD模型生成的视频在细节动态和内容上与文本提示高度一致,并且在不同视频帧之间保持了良好的时间连贯性。例如,在“A Teddy Bear Skating in Times Square”的示例中,时代广场的细节在不同视频帧中得到了很好的保留。

表1展示了在UCF-101上进行非零样本生成的结果。CMD在所有其他视频生成方法中表现最佳,这表明CMD框架设计本身就是一种有效的视频生成方法,无论是否利用预训练的图像扩散模型。此外,通过在WebVid-10M上训练CMD,并使用预训练的SD骨干进行内容帧生成,研究者发现在相同数据量的情况下,CMD模型的FVD得分优于先前的方法。

表2:展示了在MSR-VTT上进行文本到视频生成的结果,CMD模型在数据集大小为10.7M时表现良好。表3:展示了在WebVid-10M上进行文本到视频生成的结果,CMD模型在不同的分类器自由指导尺度下都取得了较低的FVD得分和较高的CLIPSIM得分。

图5总结了CMD各个组成部分的训练计算(浮点运算次数;FLOPs)、时间和内存消耗,并与其他公开的文本到视频扩散模型进行了比较。CMD的所有组成部分由于将视频分解为两个低维潜在变量(内容帧和运动潜在表示),因此在训练时需要更少的内存和计算。值得注意的是,CMD的FLOPs显著少于以前的方法:自编码器的瓶颈是0.77 TFLOPs,比ModelScope的9.41 TFLOPs大约12倍更高效。

图6报告了不同方法采样视频的FLOPs、时间和内存消耗。CMD避免了处理巨大的立方体数组,因此大大减少了冗余操作,从而实现了计算高效的视频生成框架。采样效率也反映在采样时间上;CMD仅需要大约3秒就可以使用DDIM采样器生成视频,比现有的文本到视频扩散模型快10倍。

通过这些实验,研究者证明了CMD模型在视频生成的质量和效率上都取得了显著的改进,并且与以往的方法相比具有明显的优势。

论文链接:https://arxiv.org/abs/2403.14148

项目地址:https://sihyun.me/CMD/

这篇关于视频生成新突破:内容-运动潜在扩散模型(CMD)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108942

相关文章

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

详解python pycharm与cmd中制表符不一样

《详解pythonpycharm与cmd中制表符不一样》本文主要介绍了pythonpycharm与cmd中制表符不一样,这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽... 这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽度不同导致的。在PyChar

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图