当前位置: 首页 > news >正文

文生视频算法

文生视频

  • Sora
    • 解决问题:
    • 解决思路:
  • CogVideoX
    • 解决问题:
    • 解决思路:
  • Stable Video Diffusion(SVD)
    • 解决问题:
    • 解决思路:

主流AI视频技术框架:
在这里插入图片描述

Sora

Sora: A Review on Background, Technology, Limitations, and Opportunities of Large Vision Models
参考文章

解决问题:

模拟物理现实世界,生成逼真视频

解决思路:

Sora模型的核心架构图示
在这里插入图片描述
Sora主要包括三个部分:

3D VAE模型:3D VAE Encoder能在时间和空间维度上将输入的原始视频映射到Latent空间中。同时3D VAE Decoder能将扩散模型生成的视频Latent特征进行重建,获得像素级视频内容。
基于DiT的扩散模型架构:使用类似于ViT(视觉转换器)的处理方式将视频的Latent特征进行Patch化,并进行扩散过程输出去噪后的视频Latent特征。
一个类似CLIP模型架构的条件接收机制:接收经过大型语言模型(LLM)增强的用户输入Prompt和视觉信息的Prompt,用以引导扩散模型生成具有特定风格或者主题的视频内容。

3D VAE架构:
在这里插入图片描述
其中先使用一个Visual Encoder模型将视频数据(空间和时间维度)压缩编码到Latent特征空间,获得一个3D visual patch array,接着将整个Latent特征分解成spacetime patches,最后再排列组合成为一个visual patches向量。

CogVideoX

CogVideoX
参考文章

解决问题:

模拟物理现实世界,生成逼真视频

解决思路:

CogVideoX-2B模型的完整架构:

在这里插入图片描述
CogVideoX主要包括三个部分:

3D Causal VAE模型: 3D Causal VAE Encoder能在时间和空间维度上将输入的原始视频映射到Latent空间中。同时3D Causal VAE Decoder能将扩散模型生成的视频Latent特征进行重建,获得像素级视频内容。
DiT Expert模型: 将视频信息的Latent特征和文本信息的Embeddings特征进行Concat后,再Patch化,并进行扩散过程输出去噪后的视频Latent特征。
Text Encoder模型: Text Encoder模型将输入的文本Prompt编码成Text Embeddings,作为条件注入DiT Expert模型中。CogVideoX中选用T5-XXL作为Text Encoder,Text Encoder具备较强的文本信息提取能力。

3D VAE架构
在这里插入图片描述
在这里插入图片描述
主要包括一个Encoder(编码器)、一个Decoder(解码器)以及一个Latent Space Regularizer(潜在空间正则器):

编码器: 用于将输入视频数据转换为Latent Feature。这一过程中,编码器会通过四个下采样阶段逐步减少视频数据的空间和时间分辨率。
解码器: 将视频数据的Latent Feature转换成原始的像素级视频。解码器也包含四个对称的上采样阶段,用于恢复视频数据的空间和时间分辨率。
潜在空间正则化器: 通过KL散度来约束高斯Latent空间,对编码器生成的Latent Feature进行正则化。这对于AI视频大模型的生成效果和稳定性至关重要。

3D Expert Transformer的完整结构图
在这里插入图片描述
Text Encoder部分(T5-xxl):

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

GELU、ReLU、Sigmoid三大激活函数之间的数值对比:在这里插入图片描述

从上图可以看出:

  1. ReLU激活函数在输入为正数时,输出与输入相同;在输入为负数时,输出为0。它非常简单但会完全忽略负值的输入
  2. Sigmoid激活函数输出在 0 到 1 之间平滑过渡,适合在某些分类任务中使用,但可能会导致梯度消失问题。
  3. GELU激活函数比ReLU 更平滑,并且在负值附近不会直接剪切到 0。它让负值小幅保留,避免了完全忽略负输入,同时保留了 ReLU 在正值区间的主要优点。

总的来说,GELU是一种更平滑的激活函数,能更好地保留输入的细微信息,尤其是在处理负值时。通过结合多种非线性运算(如 tanh 和多项式),GELU 提供了比 ReLU 更平滑和复杂的输出,有助于AI模型在训练过程中更好地捕捉数据中的复杂特征与模式。

Stable Video Diffusion(SVD)

SVD
参考文章

解决问题:

模拟物理现实世界,生成逼真视频

解决思路:

目前开源的Stable Video Diffusion模型是两个图生视频的版本,都是基于Stable Diffusion V2.1进行训练的,一个生成14帧(SVD),一个生成25帧(SVD-XT),从人工评测结果看,效果超过runaway的GEN2和Pika Labs的免费模型。

超大训练集
StabilityAI使用了一个包含5.8亿个视频剪辑的巨大数据集,来训练SVD模型。为了筛选高质量数据,我们首先检测每个视频中的不同镜头和转场,并且评估每个镜头中的运动信息,然后为每个镜头自动生成描述文字和每个镜头的美学效果等。

SVD的数据筛选具体方法如下:

级联切换检测: 采用级联的切换检测方法识别视频中的场景转场。

运动信息提取: 基于稠密光流估计每个视频片段的运动信息。

文本描述生成: 为每个视频片段自动生成三种形式的文字描述。

质量评估: 使用CLIP等方法评估每个片段的视觉质量、文本匹配度等。

过滤去噪: 根据上述评估指标过滤掉质量较差的视频片段。

经过层层筛选,最后保留了一个约1.5亿视频片段的超高质量数据集,为后续的SVD模型训练奠定重要基础。
多阶段训练
SVD模型在模型训练方面也与传统方法不同,其采用了一个三层训练架构。

第一阶段 是进行图像预训练,初始化一个图像生成模型。第二阶段 是在已经构建的大规模视频数据集上进行视频预训练,学习运动表征。第三阶段是在一个小规模的高质量视频数据集上进行微调。

这种分阶段的训练策略可以让模型更好地生成高保真视频。

同时SVD在模型框架上也进行了大量创新。例如,设计了专门的时间卷积和注意力结构,明显提高了视频时序信息的捕捉和学习能力。

多任务微调
在训练好后,我们需要对SVD模型进一步微调,可用于多模式的视频生成任务。

文本描述生成视频: 文本提示可以直接作为条件生成视频。

图像生成视频: 可以使用一张图像作为条件,生成这张图像的后续运动镜头。

多视角渲染: 可以生成同一个物体的多个前后左右观察角度的视频镜头,这样可以生成3D 效果视频。

插入视频帧: 可以将两张图像作为条件,生成插入在它们中间的额外镜头,实现视频帧率的提升。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Unet改进35:添加FastKANConv2DLayer(2024最新改进方法)
  • 关键错误 你的开始菜单出现了问题 我们将尝试在你下一次登录时修复它。【笔记】
  • golang学习笔记21——golang协程管理及sync.WaitGroup的使用
  • leetcode 199.二叉树的右视图
  • docker容器中的内存占用高的问题分析
  • MybatisPlus实现多租户 全局拦截器
  • 学习图解算法 使用C语言
  • MySQL基于GTID同步模式搭建主从复制
  • QUIC的丢包处理
  • 论文阅读笔记 --- 图模互补:知识图谱与大模型融合综述 --- 按参考文献整理
  • 操作系统名词_文件下载_反弹shell_1
  • C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)
  • spring security OAuth2 搭建资源服务器以及授权服务器/jdbc/jwt两种方案
  • 【Spark性能调优】长尾任务如何优化
  • robosuite基础教程(一)——基本概念
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • HTTP 简介
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java 内存分配及垃圾回收机制初探
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Mac转Windows的拯救指南
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Node项目之评分系统(二)- 数据库设计
  • Vue 重置组件到初始状态
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 简析gRPC client 连接管理
  • 算法系列——算法入门之递归分而治之思想的实现
  • 白色的风信子
  • const的用法,特别是用在函数前面与后面的区别
  • 组复制官方翻译九、Group Replication Technical Details
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #Linux(帮助手册)
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $L^p$ 调和函数恒为零
  • (16)Reactor的测试——响应式Spring的道法术器
  • (7)svelte 教程: Props(属性)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm高校实验室 毕业设计 800008
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十)c52学习之旅-定时器实验
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转载)利用webkit抓取动态网页和链接
  • (转载)虚函数剖析
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET 中的轻量级线程安全
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @Autowired多个相同类型bean装配问题
  • @JoinTable会自动删除关联表的数据