文本生成视频:从 Write-a-video到 Sora

2024年2月15日,OpenAI 推出了其最新的文本生成视频模型——Sora。Sora 能够根据用户的指令生成一分钟长度的高质量视频内容。这一创新的发布迅速在社会各界引发了广泛关注与深入讨论。本文将围绕本实验室发表于SIGGRAPH AISA 的 Write-a-video和 Sora 展开,讨论基于规则的视频生成方法和基于深度学习的视频生成方法。

Part 1

Write-a-video

视频生成,在图形学里,和story-telling密切相关,我们一直有一个梦想,幼儿园的小朋友讲故事时,能否在大屏幕上实时生成故事的画面?这个问题在20年前,基于视频绘制(Video based Rendering)最热的时候,却是一个技术上不可能实现的难题。2009年,清华大学图形学实验室将这个问题简化为:能否用草图和文字描述一个场景,计算机去自动生成一张高度真实感的照片?这就是Sketch2Photo[1]。 

4ce62150635348528c695cd9328d9b3f.png 图1 基于草图的真实感图像合成

又过了10年,清华大学图形学实验室终于跨越了一步,提出基于规则的视频生成方法Write-a-video[2] ,该方法可以基于视频素材,输入一段文字,输出一段剪辑好、符合文本描述的视频。

Write-a-video是一个通过编辑文本来进行视频剪辑和合成的系统。给定一个主题文本和相关的视频库(该视频库可看做深度学习里的训练数据),生成的视频旨在描绘给定的叙述,提供多样化的视觉内容,并遵循电影摄影指导原则。这个过程涉及三个简单的步骤:1) 用户提供输入,主要是通过编辑文本的形式;2) 工具自动从视频库中搜索语义匹配的候选镜头;3) 优化方法组装剪辑的视频:根据计算摄影学的剪辑准则组装剪辑视频。具体流程如图 1所示。

28f82b816cc94d30a8e541c218253c7d.png 

图 2  Write-a-video 流程示意图

Write-a-video是一种快速的视频生成方法,生成一段数分钟的视频仅需不到10秒,且支持增量文本编辑操作。

Part 2

深度学习技术的演进使视频生成实现突破

最近5年,深度学习技术得到了蓬勃的发展,主要的发展可以总结为以下三个方面:

  • 从对抗生成网络(GAN)到扩散模型(Diffusion model);

  • 从卷积神经网络(CNN)到深度自注意力网络(Transformer);

  • 从小规模训练到大规模训练.

8edbdb60c2a748369664ee4e00df9974.png 

图3  深度学习技术的变革性发展

2.1 从对抗生成网络到扩散模型

采样方法在 Diffusion model出现之前,该领域的早期工作主要植根于 GAN、VQ-VAE和自回归框架。但由于2022年以来Diffusion model的突破性进展,以及其对于大规模分布的拟合能力,以及从文本上扩展到其他模态的能力,扩散模型成为了视频生成的主流选择。

2.2 从卷积神经网络到深度自注意力网络

模型的基础架构在这些年的变化也很大,如Diffusion Model中,早期的工作基本都基于CNN的UNet架构,并且引入部分时空的注意力进行约束如Google提出的Imagen Video利用冻结的T5文本编码器来训练video diffusion model。

随着技术的发展,人们发现动态可扩展的Transformer架构运用在文生图模型或文生视频模型中是非常有意义且有效的,比如,Meta提出的Diffusion Transformer (DiT) 架构利用更长的Transformer生成是十分有效的,在许多指标上都表现出十分良好的可扩展性。

2.3 从小规模训练到大规模训练

随着深度学习技术的不断发展,数据的规模和模型的规模在生成模型中也增长迅速。近些年涌现出一批高分辨率大规模标注视频数据集,如InternVid就有两亿多的720P视频,并且有精细的文本标注。为了适应数据在scale上的增长,模型的规模也随之增长。如stability AI最开始发布的Stable Diffusion只有0.8B的UNet权重,近期最新发布的基于Transformer架构的Stable Diffusion3就拥有8B的权重,扩大了将近十倍。

Part 3

Sora

Sora[3] 是 OpenAI 所发布的最新视频生成模型,其是基于深度学习方法的视频生成模型的代表。根据其技术报告,我们猜测其背后的技术是基于 Transformer 架构的潜空间扩散模型[4]。Sora 的训练分为了两个阶段,第一阶段(如图 2 所示)训练解码器和编码器,第二阶段(如图 4所示)训练潜空间扩散模型来生成视频。

9e2f5fde49a6484faec2b784d448d8bd.png 

图4 Sora第一阶段训练,训练编码器和解码器

305fb7c4757d44e2a3121e47d4965dee.png 

图5 Sora第二阶段训练, 训练潜空间扩散模型

在两阶段的训练完成后,可以生成分钟级别的视频。

Part 4

讨论

虽然基于深度学习的技术目前居于主导地位,但基于规则的方法也有其独到之处,值得我们借鉴。下面从成本、效率、质量和未来方向四个方面进行讨论。

4.1 成本

此处的成本包含了数据成本和训练成本。Sora 的训练需要大量的视频数据,这些视频的数据量至少是以PB 为单位的。如此大量的视频的收集和存储都会占用极大的存储空间。除了数据收集和存储方面带来的巨大开销,Sora的训练成本也是十分昂贵的。根据已有的部分工作推测,Sora的训练成本可能要千卡级别的集群训练数月。对于 Write-a-video 来说,只需要数百个视频即可剪辑生成一段长视频,并且无需训练。

4.2 效率

此处讨论的效率是指生成一段视频所需的时间。根据网友反馈,Sora 生成一段视频需要数分钟甚至几十分钟,而对于 Write-a-video,生成一段视频只需要数秒。从效率来看,Write-a-video代表的基于规则的方法占据优势。

4.3 生成质量

从生成视频的质量上来看,由于 Write-a-video 是对已有视频片段的剪辑,所以其生成的视频是具有三维一致性的。而对于 Sora 而言,其生成的视频是没有三维一致性的。但是,Sora 可以生成原视频库中不存在的视频,但是 Write-a-video 却没有这种能力,只能组合剪辑原视频库的视频片段。

4.4 未来的工作

此处本文主要讨论两个未来可能的工作:1) 长视频生成,2)高效的Sora。

1)长视频生成:Sora 目前可以生成分钟级的视频,那么如何去生成更长的视频片段甚至电影呢?如果计算机可以根据剧本直接生成电影,那将会是一件非常有趣且有意义的事情。生成长视频/电影有两条潜在的技术方案。

第一条技术路线是给 Sora 更多的长视频,让其进行微调,但是建模长视频的难度比建模短视频的难度大很多,并且对算力的要求也更大。

第二条技术路线是使用多个短视频进行拼接,可以使用 Sora 生成多个 ID 一致的短视频片段,将每个片段看成是一个电影镜头,然后使用Write-a-video[2] 进行剪辑,从而拼接出一个长视频;或者基于已有短视频素材库先进行剪辑拼接,再使用Sora微调内容。

2)高效的Sora至关重要:基于我们之前的分析,我们了解到sora在生成视频的过程中耗时较多。为了实现Sora的大规模应用,提升视频生成的效率成为一个迫切需要解决的问题。也许可以从算法优化和系统优化两个方面来着手提高效率。

从算法层面来看,可以探索剪枝算法或者量化算法,在保持生成视频质量的同时,使得整个网络可以更高效地运行;从系统优化的角度出发,可以尝试使用高效的深度学习框架Jittor[5],Jittor已经被证明在大模型训练和推理中有较大的优势,效率提升可达30%以上; 进一步,也可以基于Jittor的元算子融合机制Sora结构中的算子进行专门的硬件优化。

参考文献

  • 1 Tao Chen, Ming-Ming Cheng, Ping Tan, Ariel Shamir, Shi-Min Hu, Sketch2Photo: Internet Image Montage, ACM Transactions on Graphics, 2009, Vol. 28, No. 5, Article No. 124, ACM SIGGRAPH ASIA 2009.  

  • 2 Miao Wang, Guo-Wei Yang, Shi-Min Hu, Shing-Tung Yau, Ariel Shamir, Write-a-video: computational video montage from themed text, ACM Transactions on Graphics, 2019, 38(6): 177:1-177:13. 

  • 3 https://openai.com/research/video-generation-models-as-world-simulators

  • 4 William Peebles, Saining Xie, Scalable diffusion models with transformers, Proceedings of the IEEE/CVF International Conference on Computer Vision, 2023, 4195-4205.

  • Shi-Min Hu, Dun Liang, Guo-Ye Yang, Guo-Wei Yang & Wen-Yang Zhou, Jittor: a novel deep learning framework with meta-operators and unified graph execution, Science China Information Science,  2020, Vol. 63, Article No. 222103, 1-21.  

  1.  

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/272663.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

anaconda和pycharm安装(windows10 )

1、anaconda安装 anaconda是一个软件发行版。软件发行版是一个预先建立和配置好的packages的集合,可以被安装在操作系统上,并被使用。Anaconda是由Anaconda公司开发的,一个包含PyData生态中的核心软件的完全发行版,它包含了Python…

LC打怪录 数组array

数组(Array) definition: 一种线性表数据结构。它使用一组连续的内存空间,来存储一组具有相同类型的数据。 如上图所示,假设数据元素的个数为 nnn,则数组中的每一个数据元素都有自己的下标索引,下标索引从…

基于机器学习的工业用电量预测完整代码数据

视频讲解: 毕业设计:算法+系统基于机器学习的工业用电量预测完整代码数据_哔哩哔哩_bilibili 界面展示: 结果分析与展示: 代码: from sklearn import preprocessing import random from sklearn.model_selection import train_test_split from sklearn.preprocessing…

超网、IP 聚合、IP 汇总分别是什么?三者有啥区别和联系?

一、超网 超网(Supernet)是一种网络地址聚合技术,它可以将多个连续的网络地址合并成一个更大的网络地址,从而减少路由表的数量和大小。超网技术可以将多个相邻的网络地址归并成一个更大的网络地址,这个更大的网络地址…

从零开始:神经网络(1)——神经元和梯度下降

声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。 一. 神经网络 1. 神经网络的发展 先了解一下神经网络发展的历程。从单层神经网络(感知器)开…

excel统计分析——嵌套设计

参考资料:生物统计学,巢式嵌套设计的方差分析 嵌套设计(nested design)也称为系统分组设计或巢式设计,是把试验空间逐级向低层次划分的试验设计方法。与裂区设计相似,先按一级因素设计试验,然后…

高度塌陷问题及解决

什么情况下产生 (when 父盒子没有定义高度&#xff0c;但是子元素有高度&#xff0c;希望用子盒子撑起父盒子的高度&#xff0c;但是子盒子添加了浮动属性之后&#xff0c;父盒子高度为0 <template><div class"father"><div class"son"&…

R统计学2 - 数据分析入门问题21-40

往期R统计学文章&#xff1a; R统计学1 - 基础操作入门问题1-20 21. 如何对矩阵按行 (列) 作计算&#xff1f; 使用函数 apply() vec 1:20 # 转换为矩阵 mat matrix (vec , ncol4) # [,1] [,2] [,3] [,4] # [1,] 1 6 11 16 # [2,] 2 7 12 17 # [3,] …

了解华为(PVID VLAN)与思科的(Native VLAN)本征VLAN的区别并学习思科网络中二层交换机的三层结构局域网VLAN配置

一、什么是二层交换机&#xff1f; 二层交换机&#xff08;Layer 2 Switch&#xff09;是一种网络设备&#xff0c;主要工作在OSI模型的数据链路层&#xff08;第二层&#xff09;&#xff0c;用于在局域网内部进行数据包的交换和转发。二层交换机通过学习MAC地址表&#xff0…

codeforcesABC

A A. Marathon time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output DeepL 翻译  A.马拉松 每次测试的时间限制&#xff1a;1 秒 每次测试的内存限制&#xff1a;256 兆字节 输入&#xff1a…

简单认识Linux

今天带大家简单认识一下Linux&#xff0c;它和我们日常用的Windows有什么不同呢&#xff1f; Linux介绍 Linux内核&发行版 Linux内核版本 内核(kernel)是系统的心脏&#xff0c;是运行程序和管理像磁盘和打印机等硬件设备的核心程序&#xff0c;它提供了一个在裸设备与…

Nginx配置文件的整体结构

一、Nginx配置文件的整体结构 从图中可以看出主要包含以下几大部分内容&#xff1a; 1. 全局块 该部分配置主要影响Nginx全局&#xff0c;通常包括下面几个部分&#xff1a; 配置运行Nginx服务器用户&#xff08;组&#xff09; worker process数 Nginx进程PID存放路径 错误…

Normalizer(归一化)和MinMaxScaler(最小-最大标准化)的区别详解

1.Normalizer&#xff08;归一化&#xff09;&#xff08;更加推荐使用&#xff09; 优点&#xff1a;将每个样本向量的欧几里德长度缩放为1&#xff0c;适用于计算样本之间的相似性。 缺点&#xff1a;只对每个样本的特征进行缩放&#xff0c;不保留原始数据的分布形状。 公式…

【ubuntu】安装 Anaconda3

目录 一、Anaconda 说明 二、操作记录 2.1 下载安装包 2.1.1 官网下载 2.1.2 镜像下载 2.2 安装 2.2.1 安装必要的依赖包 2.2.2 正式安装 2.2.3 检测是否安装成功 方法一 方法二 方法三 2.3 其他 三、参考资料 3.1 安装资料 3.2 验证是否成功的资料 四、其他 …

STM32---通用定时器(二)相关实验

写在前面&#xff1a;前面我们学习了基本定时器、通用定时器的相关理论部分&#xff0c;了解到通用定时器的结构框图&#xff0c;总共包含六大模块&#xff1a;时钟源、控制器、时基单元、输入捕获、公共部分以及输出捕获。对相关模块的使用也做详细的讲解。本节我们主要是对上…

【HarmonyOS】ArkTS-枚举类型

枚举类型 枚举类型是一种特殊的数据类型&#xff0c;约定变量只能在一组数据范围内选择值 定义枚举类型 定义枚举类型&#xff08;常量列表&#xff09; enum 枚举名 { 常量1 值, 常量2 值,......}enum ThemeColor {Red #ff0f29,Orange #ff7100,Green #30b30e}使用枚举…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记05_共谋(中)

1. 默许共谋 1.1. 又称寡头价格协调&#xff08;Oligopolistic Price Coordination&#xff09;或有意识的平行行为&#xff08;Conscious Parallelism&#xff09; 1.1.1. 在条件允许的情况下&#xff0c;它会发生在市场集中度较高的行业当中 1.1.…

你还可以通过“nrm”工具,来自由管理“npm”的镜像

你还可以通过“nrm”工具&#xff0c;来自由管理“npm”的镜像 nrm&#xff08;npm registry manager&#xff09;是npm的镜像管理工具&#xff0c;有时候国外的资源太慢&#xff0c;使用这个就可以快速地在npm源间切换。 1.安装nrm 在命令行执行命令&#xff0c;npm install…

如何免费获得一个市全年的气象数据?降雨量气温湿度太阳辐射等等数据

气象数据一直是一个价值较高的数据&#xff0c;它被广泛用于各个领域的研究当中。气象数据包括有气温、气压、相对湿度、降水、蒸发、风向风速、日照等多种指标&#xff0c;但是包含了这些全部指标的气象数据却较难获取&#xff0c;即使获取到了也不能随意分享。 想要大规模爬取…

抽象的java发送邮箱2.0版本

优化了更多细节 SpringBoot3&#xff1a;前置框架 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency><dependency><groupId>org.springframewo…