视频生成新突破:内容-运动潜在扩散模型(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

相关文章

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、