论文研读:Text2Video-Zero 无需微调,仅改动<文生图模型>推理函数实现文生视频(Arxiv 2023-03-23)

news2025/4/7 4:02:49

论文名:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators

1. 摘要

1.1 方法总结

  • 通过潜空间插值, 实现动作连续帧。

  • 以第一帧为锚定,替换原模型的self-attention,改为cross-attention

实现 保证图片整体场景不变的同时,生成具备运动信息的连续帧

1.2 光流(optical flow) 对齐

这里是论文提到的warping operation (源代码为warp_latents_independently函数), 是其方法核心部分

文中代码基于光流的空间变换,常用于背景对齐、运动补偿。

光流坐标变换的作用是将 latent features 映射到新的空间位置,使得目标特征在连续帧中保持一致

  • 背景特征:光流仅针对背景计算,背景(或不重要区域)的特征被对齐,减少运动带来的不连续性。
  • 转变前: 背景和前景特征未对齐,可能导致运动模糊或抖动。
  • 变化后: 背景平滑且稳定,对应特征对齐到相应的几何位置,输出更加自然。

代码解析:

  • 输入视频帧向量shape为 (batch_size, frames, channels, H, W) ,

  • 计算得到光流矫正向量(reference_flow),形状为 (batch_size, 2,H, W)

其中的2分别代表x方向和y方向(正值向右, 和向下),即每一个像素点有1个偏移量(dx, dy)

  • 即warped后的特征是经过光流变换后的潜向量

对于每个像素(x,y), 矫正后的值为new_coords=(x+dx,y+dy)

  • 归一化, 并插值grid_sample (mode='nearest‘),得到与latent shape相同的潜空间坐标

2.方法

2.1 将运动信息注入潜空间向量

(Motion Dynamics in Latent Codes)

  • 随机采样第一帧的潜向量, x T 1 ∼ N ( 0 , I ) x^1_T \sim N(0,I) xT1N(0,I)
  • 用一个预训练的SD对 x T 1 x^1_T xT1 进行DDIM去噪, ( δ t \delta t δt steps)
  • 定义一个方向向量delta, 这个向量根据图像全局即相机运动原理(从左上到右下),这里默认为一个单位 (1,1)
  • 针对m个帧,在方向向量delta上,增加不同的强度, 比如第k个帧:$\delta^k = \lambda (k-1)\delta $
  • 通过网格函数(warping operation)将方向向量从 δ \delta δ 转换到潜空间, 得到一个具备<delta方向> 插值效果的帧序列
  • 对帧序列进行DDPM加噪( δ t \delta t δt steps)

上述过程,得到一个具备连续方向插值的<帧序列>潜向量

2.2 改变self-attention计算以稳定帧变化

(Reprogramming Cross-Frame Attention)

潜向量注入搞定动作序列后,这一步改动了SD-Unet中attention的计算方式,

具体是将其中的self-attention计算改为cross-attention计算, 原self-attn为:

$ Self-Attn(Q,K,V) = Softmax (QK^T / c) V $

这里假设有m个特征,那么QKV计算就有m次,现在把m次当作m帧,

Q用第i帧, 即 Q^i; K和V都搞定为第一帧(锚定),那么m帧的attention计算为:

C r o s s − F r a m e − A t t n ( Q i , K 1 : m , V 1 : m ) = S o f t m a x ( Q i ) ( K 1 ) T / c ) V 1 Cross-Frame-Attn(Q^i, K^{1:m}, V^{1:m}) = Softmax(Q^i)(K^1)^T / c) V^1 CrossFrameAttn(Qi,K1:m,V1:m)=Softmax(Qi)(K1)T/c)V1

这里原文解释为可以保持图像从第一帧开始的《物体》和《背景》结构的一致性

2.3 背景稳定(非必要)

(Background smoothing —Optional)

这一步通过目标检测模型,将物体和背景分离(二值分类标注),将标注的mask图像用网格函数转换到潜空间,得到M

将M和运动潜向量进行一个同或计算(值相同时结果为真),得到一个背景特征更一致的潜向量序列: x ˉ \bar{x} xˉ,

以第k帧为例:

x ˉ t k \bar{x}^k_t xˉtk = M k ⨀ x k t M^k \bigodot x_{k_t} Mkxkt + ( 1 − M k ) ⨀ ( α x ^ t k ) (1-M^k) \bigodot (\alpha \hat{x}^k_t) (1Mk)(αx^tk) + ( 1 − α ) x t k (1-\alpha)x^k_t (1α)xtk

  • x ^ \hat{x} x^是背景图像进行空间转换后的向量(warped latent code).

  • α = 0.6 \alpha = 0.6 α=0.6 是调参的经验性设置

整体方法如图:
在这里插入图片描述

3. 附带方法

3.1 与带条件的微调方法结合 (Conditional and Specialized Text-to-Video)

这里介绍可以control-net 及 dreambooth 结合,实现带条件控制的编辑。

  • control-net效果(pose control):

在这里插入图片描述
在这里插入图片描述

  • dreambooth效果(edge control):

在这里插入图片描述

3.2 与图像编辑模型结合 (Video Instruct-Pix2Pix)

存在Prompt2Prompt 和 Intstruct-Pix2Pix这类在SD基础上进行图像编辑的模型,

上述模型强化了《改变文本编辑图像》的功能,但这类方法是预训练的,数据和模型消耗大。

这里同样对上述预训练模型进行self-attn 到 cross-attn的转换操作,可以实现视频的风格编辑,效果如图:

在这里插入图片描述

4.实验

4.1 参数设置

  • 模型版本: SD1.5
  • 视频格式:8 frames (这个可以增加,但每一帧都是靠第一帧计算), 512x512

4.2 消融实验

测试提出的两个改进方法效果:

  • 潜空间加光流动作
  • self-attn改为cross-frame-atten

在这里插入图片描述

4.3 整体效果

这个方法有3个作用

  1. 通过一段文字,生成对应动画:

在这里插入图片描述

  1. 通过描边或pose支架,再结合文本生成相关动画

在这里插入图片描述
在这里插入图片描述

  1. 改变动画的风格
    在这里插入图片描述

5. 论文摘录

(1) we first enrich the latent codes of gen
erated frames with motion information to keep the global
scene and the background time consistent; 

(2) we then use cross-frame attention of each frame on the first frame to
preserve the context, appearance, and identity of the fore
ground object throughout the entire sequence.

Two novel post-hoc techniques to enforce temporally
consistent generation, via encoding motion dynamics
in the latent codes, and reprogramming each frames
self-attention using a new cross-frame attention.

By using cross frame attention, the ap
pearance and structure of the objects and background as
well as identities are carried over from the first frame to
subsequent frames, which significantly increases the tem
poral consistency of the generated frames (see Fig. 10 and
the appendix, Figures 16, 20, 21).

6. Ref:

  • https://github.com/Picsart-AI-Research/Text2Video-Zero

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

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

相关文章

Spring自动化创建脚本-解放繁琐的初始化配置!!!(自动化SSM整合)

一、实现功能(原创&#xff0c;转载请告知) 1.自动配置pom配置文件 2.自动识别数据库及数据表&#xff0c;创建Entity、Dao、Service、Controller等 3.自动创建database.properties、mybatis-config.xml等数据库文件 4.自动创建spring-dao.xml spring-mvc.xml …

Unity3D仿星露谷物语开发12之创建道具列表

1、目标 道具是游戏的核心部分&#xff0c;道具包括你可以拾取的东西&#xff0c;你可以使用的工具和你能种的东西等。 本节就是创建道具的信息类。同时了解ScriptableObject类的使用。 2、创建道具枚举类 修改Assets -> Scripts -> Enums.cs脚本&#xff0c; 新增如…

华为配置 之 RIP

简介&#xff1a; RIP&#xff08;路由信息协议&#xff09;是一种广泛使用的内部网关协议&#xff0c;基于距离向量算法来决定路径。它通过向全网广播路由控制信息来动态交换网络拓扑信息&#xff0c;从而计算出最佳路由路径。RIP易于配置和理解&#xff0c;非常适用于小型网络…

使用new String(“yupi”)语句在Java中会创建多少个对象?

在 Java 编程中&#xff0c;字符串的处理是一个常见且重要的部分。理解字符串对象的创建和内存管理对于编写高效和优化的代码至关重要。当我们在 Java 中使用 new String("yupi") 语句时&#xff0c;实际上会涉及到多个对象的创建。本文将详细解释这一过程&#xff0…

vue使用el-select下拉框自定义复选框

在 Vue 开发中&#xff0c;高效且美观的组件能极大地提升用户体验和开发效率。在vue中使用elementplus 的 el-select下拉框实现了一个自定义的多选下拉框组件。 一、代码功能概述 这段代码创建了一个可多选的下拉框组件&#xff0c;通过el-select和el-checkbox-group结合的方…

Python基于EasyOCR进行路灯控制箱图像文本识别项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 随着城市化进程的加快&#xff0c;智能城市建设成为了现代社会发展的重要方向。路灯作为城市基础设…

TDengine 新功能 VARBINARY 数据类型

1. 背景 VARBINARY 数据类型用于存储二进制数据&#xff0c;与 MySQL 中的 VARBINARY 数据类型功能相同&#xff0c;VARBINARY 数据类型长度可变&#xff0c;在创建表时指定最大字节长度&#xff0c;使用进按需分配存储&#xff0c;但不能超过建表时指定的最大值。 2. 功能说明…

使用位操作符实现加减乘除!

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;使用位操作符实现加减乘除 发布时间&#xff1a;2025.1.1 隶属专栏&#xff1a;C语言 目录 位操作实现加法运算&#xff08;&#xff09;原理代码示例 位操作实现减法运算&#xff08;-&#xff09;原理代码示例 位…

基于SpringBoot的题库管理系统的设计与实现(源码+SQL+LW+部署讲解)

文章目录 摘 要1. 第1章 选题背景及研究意义1.1 选题背景1.2 研究意义1.3 论文结构安排 2. 第2章 相关开发技术2.1 前端技术2.2 后端技术2.3 数据库技术 3. 第3章 可行性及需求分析3.1 可行性分析3.2 系统需求分析 4. 第4章 系统概要设计4.1 系统功能模块设计4.2 数据库设计 5.…

MATLAB条件判断(switch-case-otherwise-end型)

在条件判断时&#xff0c;遇到很多个条件&#xff0c;如果再用 i f − e l s e if-else if−else语句就显得很繁琐&#xff0c;所以我们可以用 s w i t c h switch switch来解决 结构&#xff1a; 判断对象可以为数字&#xff0c;也可以为字符 如图&#xff1a; 注意&#x…

windows文件夹自定义右键调用powershell完成7zip加密打包

准备powershell脚本 2. regedit的路径是&#xff1a;计算机\HKEY_CLASSES_ROOT\Directory\shell\&#xff0c;在此项目下新增子项目diy_command\command&#xff0c;command的数据值为powershell D:\windowsProjects\directory_diy.ps1 %1 效果&#xff0c;点击后进入和power…

从0入门自主空中机器人-2-1【无人机硬件框架】

关于本课程&#xff1a; 本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程&#xff0c;包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程&#xff0c;带你从0开始&#xff0c;组装属于自己的自主无人机&#xff0c;并让…

C语言:位段

位段的内存分配: 1. 位段的成员可以是 int unsigned int signed int 或者是char &#xff08;属于整形家族&#xff09;类型 2. 位段的空间上是按照需要以4个字节&#xff08; 类型 int &#xff09;或者1个字节&#xff08; char &#xff09;的方式来开辟的。 3. 位段涉及…

【OceanBase】利用 OceanBase 向量检索能力构建文档智能问答小助手

文章目录 一、实验环境说明二、前期准备工作2.1 安装 Python 3.9 和 pip2.2 安装 Poetry2.3 安装并启动Docker(可选)2.4 安装 MySQL 客户端2.5 注册阿里云百炼账号并开通服务获取 API Key 三、构建智能问答小助手3.1 部署 OceanBase 集群3.1.1 方式一&#xff1a;使用 OBCloud …

http报头解析

http报文 http报文主要有两类是常见的&#xff0c;第一类是请求报文&#xff0c;第二类是响应报文&#xff0c;每个报头除了第一行&#xff0c;都是采用键值对进行传输数据&#xff0c;请求报文的第一行主要包括http方法&#xff08;GET&#xff0c;PUT&#xff0c; POST&#…

Lucene 漏洞历险记:修复损坏的索引异常

作者&#xff1a;来自 Elastic Benjamin Trent 有时&#xff0c;一行代码需要几天的时间才能写完。在这里&#xff0c;我们可以看到工程师在多日内调试代码以修复潜在的 Apache Lucene 索引损坏的痛苦。 做好准备 这篇博客与往常不同。它不是对新功能或教程的解释。这是关于花…

如何提升可视化大屏的用户体验?

一、什么是可视化大屏的用户体验 可视化大屏的用户体验是指用户在使用大屏幕可视化系统时所感受到的整体体验。这包括系统的易用性、交互性、视觉效果、信息展示方式等方面。一个好的可视化大屏用户体验应该能够让用户轻松地获取所需的信息&#xff0c;快速理解数据&#xff0…

overscroll-behavior-解决H5在ios上过度滚动的默认行为

1. 问题 开发H5的过程中&#xff0c;经常会有android和ios两边系统需要兼容的情况。在ios上一直有个问题是当H5内容触及到页面顶部或底部时&#xff0c;还是可以被人为的往下或往下拉动界面。当然可能有的情况是比较适用的&#xff0c;比如你往下拉动&#xff0c;然后在导航栏…

【无线传感网】无线传感器网络拓扑控制技术

文章目录 拓扑控制的意义影响整个网络的生存时间减小节点间通信干扰&#xff0c;提高网络通信效率为路由协议、时间同步提供基础影响数据融合弥补节点失效的影响 拓扑控制的设计目标能量消耗覆盖度连通性算法的分布式程度网络延迟&#x1f6a9;干扰和竞争对称性鲁棒性和可扩展性…

使用pandas把数据库中的数据转成csv文件

使用pandas把数据库中的数据转成csv文件 1、效果图 2、流程 1、连接数据库,获取数据 2、把一些中文字符转成gbk,忽略掉无法转化的 3、把数据转成csv 3、代码 import pymysql import pandas as pddef get_database(databasename):