文生视频综述

news2025/1/11 13:01:53

文字生成视频当前挑战 和发展现状_哔哩哔哩_bilibili今天我们聊了什么是 text to video,它的原理和目前的研究进展。text to video 是一种将文本转换为视频的技术,它可以通过图像处理、语音识别和自然语言处理等技术来实现。目前,text to video 的研究主要集中在以下几个方面:文本到视频的编码和解码、文本识别和语音合成、视频的生成和播放等。虽然 text to video 技术已经取得了一些进展,但是仍然存在一些挑战,如高, 视频播放量 518、弹幕量 0、点赞数 12、投硬币枚数 3、收藏人数 7、转发人数 2, 视频作者 小工蚁创始人, 作者简介 小工蚁创始人 张文斌原土豆网第九个员工,土豆网技术总监;担任过3家上市公司CTO,服务肯德基、星巴克、全家、松下电器、晖致、顾家家居、今世缘,相关视频:Video Retalking数字人开源项目 10秒视频驱动声音生成逼真视频,比Stable Diffusion更强AI画画Deep Floyd IF开源模型来了,深度学习如何选购GPU?2023年选择什么型号?为什么?,ChatGPT开源平替来了 开箱即用OpenChatKit,【NovelAI】解放双手GPT4+TTS+SD+Python一键成片批量操作,演示ChatGLM-6B加载本地知识库精确回答财税问题,ChatGPT和Midjourney的完美融合,中文界面,ChatGPT在国内外各行业的应用场景,企业如何构建自己的ChatGPT 中文LLM大模型和微调方法推荐,Claude已经没法在slack上打开了https://www.bilibili.com/video/BV1Dz4y187z2/?spm_id_from=333.337.search-card.all.click&vd_source=4aed82e35f26bb600bc5b46e65e25c22文生视频: 任务、挑战及现状 - 知乎示例视频由 ModelScope 生成。最近生成模型方向的进展如排山倒海,令人目不暇接,而文生视频将是这一连串进展的下一波。尽管大家很容易从字面上理解文生视频的意思,但它其实是一项相当新的计算机视觉任务,其要求…https://zhuanlan.zhihu.com/p/629698361文生视频其要求是根据文本生成一系列时间和空间上都一致的图像。

一、文生视频与文生图

        第一波文生图,采用了GAN架构,VQGAN-CLIP、XMC-GAN和GauGAN2,主要是clip的产生,第二波,openai在2021年初发布的dalle,2022年4月发布的dalle2,以及stable diffusion和Imagen等,第三波,stable diffusion的成功催生了大量产品化的扩散模型,比如dreamstudio/runwayml gen-1,webui以及midjourney。

        但是文生视频不管是扩散模型还是非扩散模型上,生成能力都很受限,文生视频通常在非常短的视频片段上训练,意味着他们需要使用计算量大且速度慢的滑动窗口来生成长视频,部署困难且保证上下文一致性和视频长度上受到限制。目前文生视频的挑战包括:

1.计算挑战:确保帧间空间和时间一致性会产生长期依赖关系,从而带来高计算成本。

2.缺乏高质量数据集:用于文生视频的多模态数据集很少,通常数据集的标注很少,这使得学习复杂的运动语义很困难。

3.视频字幕的模型性:如何描述视频从而让模型学习的更容易,需要一个完整的视频描述,近视用一个简短的文本描述是不够的,一系列prompt以及随时间移动的故事才能更好的生成视频。

二、如何实现文生视频?

早期研究主要使用基于GAN和VAE的方法,在给定文本描述的情况下自回归的生成视频帧(参见 Text2Filter 及 TGANs-C)),这些方法仅限于低分辨率、短距以及视频中目标的运动比较单一、孤立的情况。

最初的文生视频模型在分辨率、上下文和长度方面极为有限,上图取自TGANs-C。

        受文本GPT3和图像DALLE中大规模预训练transformer模型的成功启发,文生视频研究的第二波浪潮采用了transformer架构。PhenakiMake-A-VideNUWAVideoGPT 和 CogVideo 都提出了基于 transformer 的框架,而 TATS 提出了一种混合方法,从而将用于生成图像的 VQGAN 和用于顺序地生成帧的时间敏感 transformer 模块结合起来。在第二波浪潮的诸多框架中,Phenaki 尤其有意思,因为它能够根据一系列提示 (即一个故事情节) 生成任意长视频。同样,NUWA-Infinity 提出了一种双重自回归 (autoregressive over autoregressive) 生成机制,可以基于文本输入合成无限长度的图像和视频,从而使得生成高清的长视频成为可能。但是,Phenaki 或 NUWA 模型均无法从公开渠道获取。

Phenaki 的模型架构基于 transformer,图片来自 此处

        第三波也就是当前这一波文生视频模型浪潮主要以基于扩散的架构为特征。扩散模型在生成多样化、超现实和上下文丰富的图像方面取得了显著成功,这引起了人们对将扩散模型推广到其他领域 (如音频、3D ,最近又拓展到了视频) 的兴趣。这一波模型是由 Video Diffusion Models (VDM) 开创的,它首次将扩散模型推广至视频领域。然后是 MagicVideo 提出了一个在低维隐空间中生成视频剪辑的框架,据其报告,新框架与 VDM 相比在效率上有巨大的提升。另一个值得一提的是 Tune-a-Video,它使用单文本-视频对微调预训练的文生图模型,并允许在保留运动的同时改变视频内容。随后涌现出了越来越多的文生视频扩散模型,包括 Video LDMText2Video-ZeroRunway Gen1、Runway Gen2 以及 NUWA-XL

        Text2Video-Zero是一个文本引导的视频生成和处理框架,其工作方式类似于controlnet,可以基于输入的文本数据或文本+姿态混合数据或者文本+边缘混合数据直接生成视频。Text2Video-Zero是一种零样本模型,通过将运动信息和预训练的sd结合,无需任何文本-视频对数据,与Text2video-Zero类似,runway gen-1和runway gen-2模型可以合成由文本或图像描述的内容引导的视频,这些工作大多数都是在短视频片段上训练,并且依靠带有滑动窗口的自回归机制来生成更长的视频,这不可避免地导致了上下文差异 (context gap)。 NUWA-XL 解决了这个问题,并提出了一种“双重扩散 (diffusion over diffusion)”方法,并在 3376 帧视频数据上训练模型。还有阿里巴巴达摩院的videoFusion 和 Tencel 的 VideoCrafter。

三、数据集    

与其他视觉语言模型一样,文生视频模型通常在大型 文本 - 视频对 数据集上进行训练。这些数据集中的视频通常被分成短的、固定长度的块,并且通常仅限于少数几个目标的孤立动作。出现这种情况的一部分原因是计算限制,另一部分原因是以有意义的方式描述视频内容这件事本身就很难。而我们看到多模态视频文本数据集和文生视频模型的发展往往是交织在一起的,因此有不少工作侧重于开发更易于训练的更好、更通用的数据集。同时也有一些工作另辟蹊径,对替代解决方案进行了探索,例如 Phenaki 将 文本 - 图像对 与 文本 - 视频对 相结合用于文生视频任务; Make-a-Video 则更进一步,提议仅使用 文本 - 图像对 来学习世界表象信息,并使用单模态视频数据以无监督的方式学习时空依赖性。

这些大型数据集面临与文本图像数据集类似的问题。最常用的文本 - 视频数据集 WebVid 由 1070 万个 文本 - 视频对 (视频时长 5.2 万小时) 组成,并包含一定量的噪声样本,这些样本中的视频文本描述与视频内容是非相干的。其他数据集试图通过聚焦特定任务或领域来解决这个问题。例如,Howto100M 数据集包含 13600 万个视频剪辑,其中文本部分描述了如何一步一步地执行复杂的任务,例如烹饪、手工制作、园艺、和健身。而 QuerYD 数据集则聚焦于事件定位任务,视频的字幕详细描述了目标和动作的相对位置。CelebV-Text 是一个包含超过 7 万个视频的大规模人脸文本 - 视频数据集,用于生成具有逼真的人脸、情绪和手势的视频。

四、Hugging Face 上的文生视频

        使用 Hugging Face Diffusers,你可以轻松下载、运行和微调各种预训练的文生视频模型,包括 Text2Video-Zero 和 阿里巴巴达摩院 的 VideoFusion。我们目前正在努力将更多优秀的工作集成到 Diffusers 和 Transformers 中。

        在 Hugging Face,我们的目标是使 Hugging Face 库更易于使用并包含最先进的研究。你可以前往 Hub 查看和体验由 团队、无数社区贡献者和研究者贡献的 Spaces 演示。目前,上面有 VideoGPTCogVideoModelScope 文生视频 以及 Text2Video-Zero 的应用演示,后面还会越来越多,敬请期待。要了解这些模型能用来做什么,我们可以看一下 Text2Video-Zero 的应用演示。该演示不仅展示了文生视频应用,而且还包含多种其他生成模式,如文本引导的视频编辑,以及基于姿势、深度、边缘输入结合文本提示进行联合条件下的视频生成。

除了使用应用演示来尝试预训练文生视频模型外,你还可以使用 Tune-a-Video 训练演示 使用你自己的 文本 - 视频对微调现有的文生图模型。仅需上传视频并输入描述该视频的文本提示即就可以了。你可以将训得的模型上传到公开的 Tune-a-Video 社区的 Hub 或你私人用户名下的 Hub。训练完成后,只需转到演示的 Run 选项卡即可根据任何文本提示生成视频。

Hub 上的所有 Space 其实都是 Git 存储库,你可以在本地或部署环境中克隆和运行它们。下面克隆一下 ModelScope 演示,安装环境,并在本地运行它。

git clone https://huggingface.co/spaces/damo-vilab/modelscope-text-to-video-synthesis
cd modelscope-text-to-video-synthesis
pip install -r requirements.txt
python app.py

这就好了! Modelscope 演示现在已经在你的本地计算机上运行起来了。请注意,Diffusers 支持 ModelScope 文生视频模型,你只需几行代码即可直接加载并使用该模型生成新视频。

import torch
from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler
from diffusers.utils import export_to_video

pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", torch_dtype=torch.float16, variant="fp16")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe.enable_model_cpu_offload()

prompt = "Spiderman is surfing"
video_frames = pipe(prompt, num_inference_steps=25).frames
video_path = export_to_video(video_frames)

其他的社区开源文生视频项目

最后,还有各种不在 Hub 上的开源项目和模型。一些值得关注的有 Phil Wang (即 lucidrains) 的 Imagen 非官方实现、PhenakiNUWAMake-a-Video 以及 Video Diffusion 模型。还有一个有意思的项目 ExponentialML,它是基于 Diffusers 的,用于微调 ModelScope 文生视频模型。

总结

文生视频的研究正在呈指数级发展,但现有工作在上下文一致性上仍有限制,同时还面临其他诸多挑战。在这篇博文中,我们介绍了文生视频模型的限制、独特挑战和当前状态。我们还看到了最初为其他任务设计的架构范例如何赋能文生视频任务的巨大飞跃,以及这对未来研究意味着什么。虽然进展令人印象深刻,但与文生图模型相比,文生视频模型还有很长的路要走。最后,我们还展示了如何通过 Hub 上的应用演示来使用这些模型,以及如何将这些模型作为 Diffusers 流水线的一部分来完成各种任务。 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】刷题训练营 —— 每日一练(十三)

文章目录 前言 BC123 小乐乐找最大数BC124 小乐乐是否被叫家长BC125 小乐乐转换成绩BC126 小乐乐算多少人被请家长BC127 小乐乐算最高分BC128 小乐乐计算求和BC129 小乐乐计算函数BC130 小乐乐查找数字BC131 KiKi学程序设计基础BC132 KiKi算期末成绩完结 前言 大家好&#xff…

计算机体系结构标量处理机

先行控制技术 缓冲深度的设计方法 以先行指令缓冲栈为例。 假设缓冲深度为 D 1 D_1 D1​,考虑以下两种极端情况。 (1)先行指令缓冲栈已经充满,此时指令流出速度最快,例如连续分析RR型指令 ,设这种指令序…

[元带你学: eMMC协议详解 12] Speed Mode 选择

依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载。 所在专栏 《元带你学: eMMC协议详解》 内容摘要 全文 2000字, 介绍了各种Speed Mode 选择的方法, 需要按照一定的步骤, 重点需要掌握HS400, High Speed 和 HS20…

python中的流程控制语句

文章目录 if-else语句代码演示: if-elif-else语句代码演示1:代码演示2: while 循环语句循环语句练习1.求100以内所有的奇数之和2.求100以内所有7的倍数之和,以及个数3.求1000内的水仙花数4.获取用户输入的任意数,判断是…

《Reinforcement Learning: An Introduction》第2章笔记

2. Multi-armed Bandits 评估性反馈(evaluative feedback) 完全取决于采取的动作,这是强化学习采用的方式。纯粹的评估性反馈表明要执行的动作有多好,但是不关注它是否是可能的最好或最坏的动作。指导性反馈(instruct…

迭代器Iterator和生成器funcion *

迭代器Iterator 迭代器 为各种不同的数据结果提供统一的访问机制,任何数据结构只要部署Iterator接口,就可以完成便利操作,主要提供for of 工作原理: 创建一个指针对象,指向当前数组的起始位置 第一次调用对象的next方…

JAVA之数组2

添加元素 从后往前进行迭代,最后在末尾插入元素 tip:为避免数字在覆盖过程中丢失,故从后往前覆盖 删除元素 从前往后迭代,最后将末尾赋值为0 tip: 以覆盖的数arr【i】为基准,构造循环 共同处Tip: 范围均为【index1&…

子串--子字符串 0528

210102 201012 A1A2…An An…A2A1 如何做, 翻转的是21,因为2>1; 翻转的是210,因为2>0; 翻转的是2101,因为2>1; 翻转的是21010,因为2>0; 翻转的是210102,因为22且1&…

JavaScript 进阶 (二)

目录 深入对象 创建对象三种方式 构造函数 实例成员&静态成员 内置构造函数 Object Array String Number 深入对象 创建对象三种方式 1. 利用对象字面量创建对象 const obj { name : abc} 2. 利用 new Object 创建对象 const obj new Object({ uname: 123 }…

如何评估一个好的物业系统开发方案?

在当前不断变化的物业管理市场中,物业系统已成为物业管理公司提高管理效率和降低成本的必然选择。因此,如何评估一个好的物业系统开发方案成为了每个物业管理决策者必须面对的重要问题。在本文中,我们将介绍如何从以下几个方面来评估一个好的…

文心一言 VS 讯飞星火 VS chatgpt (24)-- 算法导论4.2 6题

六、用Strassen 算法作为子进程来进行一个 knn 矩阵和一个nkn 矩阵相乘,最快需要花费多长时间?对两个输入矩阵规模互换的情况,回答相同的问题。 文心一言: Strassen 算法是一种用于矩阵乘法的分治算法,它将原始的矩阵分解为较小…

腾讯云产品首单特惠是什么意思?包括新用户老用户的解答

腾讯云最近推出的活动限制条件为产品首单特惠,但是有的用户购买不了,右上角提示“产品首单特惠”,那么什么是产品首单特惠?什么是新用户?什么是老用户?新手站长给大家: 腾讯云产品首单特惠是什…

【Linux】Pinctrl子系统简介

前言: 我们工作开发中非常常用的就是GPIO,在Linux开发中,是有必要去熟悉并理解的。在Linux内核中也有提供相应的子系统pinctrl子系统,本文从大的面上去了解它。 参考学习:Linux笔记老师课程(Pinctrl子系统&…

CentOS 7.6 (Linux)环境上离线安装 MySQL 8

1 下载安装包 访问https://dev.mysql.com将网页划到最下面,点击下载MySQL社区安装包 按照如下图片框选的进行下载 2 解压上传 下载完了之后使用WinRAR软件在Windows电脑上解压,选择如下包使用ftp工具上传至Linux机器最大目录下。 3 安装前检查 …

DCGAN-MNIST——使用TensorFlow 2 / Keras实现深度卷积DCGAN来生成时尚MNIST的灰度图像

DCGAN-MNIST——使用TensorFlow 2 / Keras实现深度卷积DCGAN来生成时尚MNIST的灰度图像 1. 效果图2. 原理2.1 结构指南2.2 模型结构及训练过程 3. 源码参考 这篇博客将介绍如何使用TensorFlow 2 / Keras中实现深度卷积GAN(DCGAN)来生成类似时尚MNIST的灰…

魔法反射--java反射进阶(实战篇)

👳我亲爱的各位大佬们好😘😘😘 ♨️本篇文章记录的为 魔法反射–java反射进阶(实战篇) 相关内容,适合在学Java的小白,帮助新手快速上手,也适合复习中,面试中的大佬🙉🙉🙉…

openpose原理及安装教程(姿态识别)

OpenPose是一个基于深度学习的人体姿态估计框架,可以实时地估计人体的关键点,包括身体和手部姿势。它是由卡内基梅隆大学的研究团队开发的,已经成为了人体姿态估计领域的一个重要项目。 OpenPose的原理是基于卷积神经网络(CNN),通过对图像进行深度学习处理,可以检测出…

如何在华为OD机试中获得满分?Java实现【寻找峰值】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

Aerial Vision-and-Dialog Navigation阅读报告

Aerial Vision-and-Dialog Navigation 本次报告,包含以下部分:1摘要,2数据集/模拟器,3AVDN任务,4模型,5实验结果。重点介绍第2/3部分相关主页:Aerial Vision-and-Dialog Navigation (google.com…

【章节2】husky + 自动检测是否有未解决的冲突 + 预检查debugger + 自动检查是否符合commit规范

在章节1中我们学习到了commit的规范、husky的安装和使用、lint-staged怎么安装以及怎么用来格式化代码。那么这篇文章我们来看看commit预处理中我们还能做哪些处理呢? 自然,我们还是要用到husky这个东西的,大致过程其实和章节1异曲同工&#…